{"version":3,"file":"static/js/main.b32ebb91.js","mappings":"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CACV,QAED,SAAY,CACX,IAED,gBAAmB,YACnB,QAAW,wBAEZ,CACC,OAAU,KACV,QAAW,MACX,YAAe,cACf,QAAW,CACV,OAED,SAAY,CACX,IAED,gBAAmB,SACnB,QAAW,yBAEZ,CACC,OAAU,KACV,QAAW,OACX,YAAe,2BACf,QAAW,CACV,OAED,SAAY,CACX,IAED,gBAAmB,SACnB,QAAW,yBAEZ,CACC,OAAU,KACV,QAAW,mBACX,YAAe,mBACf,QAAW,CACV,QAED,SAAY,CACX,IAED,gBAAmB,SACnB,QAAW,4BAEZ,CACC,OAAU,KACV,QAAW,YACX,YAAe,YACf,QAAW,CACV,OAED,SAAY,CACX,IAED,gBAAmB,YACnB,QAAW,8BAEZ,CACC,OAAU,KACV,QAAW,KACX,YAAe,UACf,QAAW,CACV,MAED,SAAY,CACX,GAED,gBAAmB,SACnB,QAAW,uBAEZ,CACC,OAAU,KACV,QAAW,WACX,YAAe,mBACf,QAAW,CACV,QAED,SAAY,CACX,IAED,gBAAmB,SACnB,QAAW,uBAEZ,CACC,OAAU,KACV,QAAW,SACX,YAAe,iBACf,QAAW,CACV,OAED,SAAY,CACX,IAED,gBAAmB,SACnB,QAAW,6BAEZ,CACC,OAAU,KACV,QAAW,WACX,YAAe,WACf,QAAW,CACV,OAED,SAAY,CACX,IAED,gBAAmB,SACnB,QAAW,4BAEZ,CACC,OAAU,KACV,QAAW,SACX,YAAe,SACf,QAAW,CACV,QAED,SAAY,CACX,IAED,gBAAmB,SACnB,QAAW,sBAEZ,CACC,OAAU,KACV,QAAW,KACX,YAAe,KACf,QAAW,CACV,OACA,KACA,MAED,SAAY,CACX,GACA,EACA,GAED,gBAAmB,SACnB,QAAW,uBAEZ,CACC,OAAU,KACV,QAAW,SACX,YAAe,iBACf,QAAW,CACV,QAED,SAAY,CACX,GAED,gBAAmB,SACnB,QAAW,0BAEZ,CACC,OAAU,KACV,QAAW,iBACX,YAAe,iBACf,QAAW,CACV,OAED,SAAY,CACX,IAED,gBAAmB,SACnB,QAAW,0BAEZ,CACC,OAAU,KACV,QAAW,cACX,YAAe,cACf,QAAW,CACV,OAED,SAAY,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AEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,MACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,MACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,MACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,MACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,MACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,MACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,MACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,MACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,MCzkIHA,GAAW,CACpB,CACI,EACA,EACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,MACA,EACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,EACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,EACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,EACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,EACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,EACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,MC3jFHA,GAAW,CACpB,CACI,OACA,EACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,EACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,EACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,OACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,GACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,IACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,IACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,QACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,KAIZ,CACI,SACA,KACA,CACI,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBACA,GAEJ,CACI,qBA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","sources":["../node_modules/@polkadot/util/node_modules/bn.js/lib/bn.js","../node_modules/classnames/index.js","../node_modules/dialog-polyfill/dist/dialog-polyfill.esm.js","../node_modules/eventemitter3/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dialog-polyfill/lib/react-dialog-polyfill.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-input-autosize/lib/AutosizeInput.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/@polkadot/wasm-crypto-wasm/cjs/bytes.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","state/storedReducers.ts","utils/StoredStateContext.tsx","state/reducers.ts","utils/StateContext.tsx","webpack://staking-platform/./src/components/Dashboard/Dashboard.module.css?d356","webpack://staking-platform/./src/components/Dashboard/Accounts.module.css?ee2f","webpack://staking-platform/./src/components/Dashboard/TokenBar.module.css?3ba1","utils/stakePercentage.ts","components/Dashboard/TokenBar.tsx","webpack://staking-platform/./src/components/Dashboard/Meta.module.css?9f40","../node_modules/@noble/hashes/src/_assert.ts","../node_modules/@noble/hashes/src/crypto.ts","../node_modules/@noble/hashes/src/utils.ts","../node_modules/@noble/hashes/src/_blake2.ts","../node_modules/@noble/hashes/src/_u64.ts","../node_modules/@noble/hashes/src/blake2b.ts","../node_modules/@polkadot/util/hex/toU8a.js","../node_modules/@polkadot/x-global/index.js","../node_modules/@polkadot/x-bigint/index.js","../node_modules/@polkadot/util/has.js","../node_modules/@polkadot/util/is/function.js","../node_modules/@polkadot/util/is/buffer.js","../node_modules/@polkadot/util/is/hex.js","../node_modules/@polkadot/util/is/u8a.js","../node_modules/@polkadot/x-textencoder/fallback.js","../node_modules/@polkadot/x-textencoder/browser.js","../node_modules/@polkadot/util/string/toU8a.js","../node_modules/@polkadot/util/u8a/toU8a.js","../node_modules/@polkadot/x-textdecoder/fallback.js","../node_modules/@polkadot/x-textdecoder/browser.js","../node_modules/@polkadot/util/u8a/toString.js","../node_modules/@polkadot/x-randomvalues/browser.js","../node_modules/@polkadot/wasm-bridge/wbg.js","../node_modules/@polkadot/wasm-bridge/init.js","../node_modules/@polkadot/wasm-util/fflate.js","../node_modules/@polkadot/wasm-util/base64.js","../node_modules/@polkadot/wasm-crypto-wasm/bundle.js","../node_modules/@polkadot/wasm-crypto-init/wasm.js","../node_modules/@polkadot/wasm-crypto/init.js","../node_modules/@polkadot/wasm-bridge/bridge.js","../node_modules/@polkadot/wasm-crypto/bundle.js","../node_modules/@polkadot/util/u8a/toHex.js","../node_modules/@polkadot/util-crypto/helpers.js","../node_modules/@polkadot/util-crypto/blake2/asU8a.js","../node_modules/@scure/base/lib/esm/index.js","../node_modules/@polkadot/util-crypto/base32/helpers.js","../node_modules/@polkadot/util-crypto/base58/bs58.js","../node_modules/@polkadot/util/u8a/concat.js","../node_modules/@polkadot/util-crypto/address/sshash.js","../node_modules/@substrate/ss58-registry/esm/index.js","../node_modules/@polkadot/networks/defaults/ledger.js","../node_modules/@polkadot/networks/defaults/genesis.js","../node_modules/@polkadot/networks/defaults/icons.js","../node_modules/@polkadot/networks/defaults/testnets.js","../node_modules/@polkadot/networks/interfaces.js","../node_modules/@polkadot/util-crypto/address/defaults.js","../node_modules/@polkadot/util-crypto/address/decode.js","../node_modules/@polkadot/util-crypto/address/checksum.js","../node_modules/@polkadot/ui-shared/icons/polkadot.js","webpack://staking-platform/./src/components/Identicon/Identicon.module.css?69a5","components/Identicon/Identicon.tsx","../node_modules/@polkadot/util/object/spread.js","../node_modules/@polkadot/util/u8a/eq.js","../node_modules/@polkadot/util-crypto/address/encode.js","../node_modules/@polkadot/extension-dapp/bundle.js","../node_modules/@polkadot/extension-dapp/util.js","../node_modules/@polkadot/util/format/formatDate.js","../node_modules/@polkadot/util/is/bn.js","../node_modules/@polkadot/util/is/object.js","../node_modules/@polkadot/util/noop.js","../node_modules/@polkadot/util/logger.js","../node_modules/@polkadot/util/is/undefined.js","../node_modules/@polkadot/util/is/helpers.js","../node_modules/@polkadot/util/is/class.js","../node_modules/@polkadot/util/is/null.js","../node_modules/@polkadot/x-ws/browser.js","../node_modules/@polkadot/util/is/string.js","../node_modules/@polkadot/util/is/bigInt.js","../node_modules/@polkadot/util/stringify.js","../node_modules/@polkadot/util/is/number.js","../node_modules/@polkadot/rpc-provider/coder/error.js","../node_modules/@polkadot/rpc-provider/coder/index.js","../node_modules/@polkadot/rpc-provider/defaults.js","../node_modules/@polkadot/rpc-provider/lru.js","../node_modules/@polkadot/rpc-provider/ws/errors.js","../node_modules/@polkadot/rpc-provider/ws/index.js","../node_modules/@polkadot/util/is/childClass.js","../node_modules/@polkadot/api/packageInfo.js","../node_modules/@polkadot/api/base/find.js","../node_modules/rxjs/src/internal/util/createErrorClass.ts","../node_modules/rxjs/src/internal/util/EmptyError.ts","../node_modules/tslib/tslib.es6.mjs","../node_modules/rxjs/src/internal/util/isFunction.ts","../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","../node_modules/rxjs/src/internal/util/arrRemove.ts","../node_modules/rxjs/src/internal/Subscription.ts","../node_modules/rxjs/src/internal/config.ts","../node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts","../node_modules/rxjs/src/internal/util/reportUnhandledError.ts","../node_modules/rxjs/src/internal/util/noop.ts","../node_modules/rxjs/src/internal/NotificationFactories.ts","../node_modules/rxjs/src/internal/util/errorContext.ts","../node_modules/rxjs/src/internal/Subscriber.ts","../node_modules/rxjs/src/internal/firstValueFrom.ts","../node_modules/rxjs/src/internal/util/isArrayLike.ts","../node_modules/rxjs/src/internal/util/isPromise.ts","../node_modules/rxjs/src/internal/symbol/observable.ts","../node_modules/rxjs/src/internal/util/identity.ts","../node_modules/rxjs/src/internal/util/pipe.ts","../node_modules/rxjs/src/internal/Observable.ts","../node_modules/rxjs/src/internal/util/isInteropObservable.ts","../node_modules/rxjs/src/internal/util/isAsyncIterable.ts","../node_modules/rxjs/src/internal/util/throwUnobservableError.ts","../node_modules/rxjs/src/internal/symbol/iterator.ts","../node_modules/rxjs/src/internal/util/isIterable.ts","../node_modules/rxjs/src/internal/util/isReadableStreamLike.ts","../node_modules/rxjs/src/internal/observable/innerFrom.ts","../node_modules/rxjs/src/internal/util/lift.ts","../node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts","../node_modules/rxjs/src/internal/operators/switchMap.ts","../node_modules/rxjs/src/internal/util/args.ts","../node_modules/rxjs/src/internal/util/isScheduler.ts","../node_modules/rxjs/src/internal/util/executeSchedule.ts","../node_modules/rxjs/src/internal/operators/observeOn.ts","../node_modules/rxjs/src/internal/operators/subscribeOn.ts","../node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts","../node_modules/rxjs/src/internal/scheduled/scheduled.ts","../node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts","../node_modules/rxjs/src/internal/scheduled/scheduleArray.ts","../node_modules/rxjs/src/internal/scheduled/schedulePromise.ts","../node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts","../node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts","../node_modules/rxjs/src/internal/observable/from.ts","../node_modules/rxjs/src/internal/observable/of.ts","../node_modules/rxjs/src/internal/operators/map.ts","../node_modules/@polkadot/util/object/property.js","../node_modules/@polkadot/types-codec/utils/util.js","../node_modules/@polkadot/types-codec/utils/compareMap.js","../node_modules/@polkadot/types-codec/native/Json.js","../node_modules/@polkadot/util/is/ascii.js","../node_modules/@polkadot/types-codec/native/Raw.js","../node_modules/@polkadot/util/is/utf8.js","../node_modules/@polkadot/types-codec/base/DoNotConstruct.js","../node_modules/@polkadot/util/u8a/toBn.js","../node_modules/@polkadot/util/compact/fromU8a.js","../node_modules/@polkadot/util/bn/consts.js","../node_modules/@polkadot/util/hex/toBn.js","../node_modules/@polkadot/util/hex/stripPrefix.js","../node_modules/@polkadot/util/is/toBigInt.js","../node_modules/@polkadot/util/is/toBn.js","../node_modules/@polkadot/util/bn/toBn.js","../node_modules/@polkadot/util/bn/toU8a.js","../node_modules/@polkadot/util/compact/toU8a.js","../node_modules/@polkadot/types-codec/utils/compareArray.js","../node_modules/@polkadot/types-codec/abstract/Array.js","../node_modules/@polkadot/util/string/camelCase.js","../node_modules/@polkadot/types-codec/utils/toConstructors.js","../node_modules/@polkadot/types-codec/utils/typesToMap.js","../node_modules/@polkadot/types-codec/base/Null.js","../node_modules/@polkadot/types-codec/base/Enum.js","../node_modules/@polkadot/util/is/boolean.js","../node_modules/@polkadot/types-codec/utils/decodeU8a.js","../node_modules/@polkadot/types-codec/native/Struct.js","../node_modules/@polkadot/util/is/codec.js","../node_modules/@polkadot/types-codec/utils/sortValues.js","../node_modules/@polkadot/types-codec/extended/Map.js","../node_modules/@polkadot/types-codec/extended/BTreeMap.js","../node_modules/@polkadot/types-codec/utils/compareSet.js","../node_modules/@polkadot/types-codec/extended/BTreeSet.js","../node_modules/@polkadot/types-codec/base/Compact.js","../node_modules/@polkadot/types-codec/extended/HashMap.js","../node_modules/@polkadot/util/format/formatDecimal.js","../node_modules/@polkadot/util/format/getSeparator.js","../node_modules/@polkadot/util/format/si.js","../node_modules/@polkadot/util/format/formatBalance.js","../node_modules/@polkadot/util/format/formatNumber.js","../node_modules/@polkadot/types-codec/abstract/Int.js","../node_modules/@polkadot/util/u8a/toNumber.js","../node_modules/@polkadot/util/bn/toHex.js","../node_modules/@polkadot/types-codec/base/Int.js","../node_modules/@polkadot/types-codec/base/Option.js","../node_modules/@polkadot/types-codec/base/Tuple.js","../node_modules/@polkadot/types-codec/extended/Range.js","../node_modules/@polkadot/types-codec/extended/RangeInclusive.js","../node_modules/@polkadot/types-codec/base/Result.js","../node_modules/@polkadot/types-codec/native/Set.js","../node_modules/@polkadot/types-codec/base/UInt.js","../node_modules/@polkadot/util/compact/addLength.js","../node_modules/@polkadot/types-codec/extended/Bytes.js","../node_modules/@polkadot/types-codec/base/Vec.js","../node_modules/@polkadot/types-codec/extended/U8aFixed.js","../node_modules/@polkadot/types-codec/base/VecFixed.js","../node_modules/@polkadot/util/compact/stripLength.js","../node_modules/@polkadot/types-codec/extended/WrapperKeepOpaque.js","../node_modules/@polkadot/types-codec/extended/WrapperOpaque.js","../node_modules/@polkadot/types-create/types/types.js","../node_modules/@polkadot/types-codec/utils/sanitize.js","../node_modules/@polkadot/types-create/util/getTypeDef.js","../node_modules/@polkadot/types-create/util/typeSplit.js","../node_modules/@polkadot/types-create/create/class.js","../node_modules/@polkadot/types-create/create/type.js","../node_modules/@polkadot/util/lazy.js","../node_modules/@polkadot/util/assert.js","../node_modules/@polkadot/types/extrinsic/signedExtensions/emptyCheck.js","../node_modules/@polkadot/types/extrinsic/signedExtensions/substrate.js","../node_modules/@polkadot/types/extrinsic/signedExtensions/index.js","../node_modules/@polkadot/types/extrinsic/signedExtensions/polkadot.js","../node_modules/@polkadot/types/extrinsic/signedExtensions/shell.js","../node_modules/@polkadot/types/extrinsic/signedExtensions/statemint.js","../node_modules/@polkadot/types/generic/Event.js","../node_modules/@polkadot/types-codec/abstract/Base.js","../node_modules/@polkadot/types/extrinsic/v4/Extrinsic.js","../node_modules/@polkadot/types/extrinsic/constants.js","../node_modules/@polkadot/types/extrinsic/Extrinsic.js","../node_modules/@polkadot/types-codec/primitive/U64.js","../node_modules/@polkadot/types/extrinsic/ExtrinsicEra.js","../node_modules/@polkadot/types/extrinsic/ExtrinsicPayload.js","../node_modules/@polkadot/types/extrinsic/ExtrinsicPayloadUnknown.js","../node_modules/@polkadot/types/extrinsic/ExtrinsicUnknown.js","../node_modules/@polkadot/types/extrinsic/SignerPayload.js","../node_modules/@polkadot/types/extrinsic/v4/ExtrinsicPayload.js","../node_modules/@polkadot/types/extrinsic/util.js","../node_modules/@polkadot/types/extrinsic/v4/ExtrinsicSignature.js","../node_modules/@polkadot/types/generic/AccountId.js","../node_modules/@polkadot/types-codec/primitive/U32.js","../node_modules/@polkadot/types/generic/AccountIndex.js","../node_modules/@polkadot/types/generic/Block.js","../node_modules/@polkadot/types/generic/Call.js","../node_modules/@polkadot/types/generic/ChainProperties.js","../node_modules/@polkadot/types/generic/ConsensusEngineId.js","../node_modules/@polkadot/types/generic/LookupSource.js","../node_modules/@polkadot/types/generic/MultiAddress.js","../node_modules/@polkadot/types-codec/native/Bool.js","../node_modules/@polkadot/types/generic/Vote.js","../node_modules/@noble/hashes/src/sha3.ts","../node_modules/@polkadot/util-crypto/keccak/asU8a.js","../node_modules/@polkadot/util-crypto/ethereum/isAddress.js","../node_modules/@polkadot/util-crypto/ethereum/isChecksum.js","../node_modules/@noble/hashes/src/_sha2.ts","../node_modules/@noble/hashes/src/sha256.ts","../node_modules/@noble/curves/src/abstract/utils.ts","../node_modules/@noble/curves/src/abstract/modular.ts","../node_modules/@noble/hashes/src/hmac.ts","../node_modules/@noble/curves/src/abstract/curve.ts","../node_modules/@noble/curves/src/abstract/weierstrass.ts","../node_modules/@noble/curves/src/_shortw_utils.ts","../node_modules/@noble/curves/src/secp256k1.ts","../node_modules/@polkadot/util-crypto/bn.js","../node_modules/@polkadot/util-crypto/ethereum/encode.js","../node_modules/@polkadot/util-crypto/secp256k1/expand.js","../node_modules/@polkadot/types/ethereum/AccountId.js","../node_modules/@polkadot/types/ethereum/LookupSource.js","../node_modules/@polkadot/types-codec/extended/BitVec.js","../node_modules/@polkadot/types-codec/native/Float.js","../node_modules/@polkadot/util/u8a/toFloat.js","../node_modules/@polkadot/util/float/toU8a.js","../node_modules/@polkadot/types-codec/primitive/F32.js","../node_modules/@polkadot/types-codec/primitive/F64.js","../node_modules/@polkadot/types-codec/primitive/I8.js","../node_modules/@polkadot/types-codec/primitive/I16.js","../node_modules/@polkadot/types-codec/primitive/I32.js","../node_modules/@polkadot/types-codec/primitive/I64.js","../node_modules/@polkadot/types-codec/primitive/I128.js","../node_modules/@polkadot/types-codec/primitive/I256.js","../node_modules/@polkadot/types-codec/primitive/ISize.js","../node_modules/@polkadot/types-codec/extended/OptionBool.js","../node_modules/@polkadot/types-codec/native/Text.js","../node_modules/@polkadot/types-codec/extended/Type.js","../node_modules/@polkadot/types-codec/primitive/U8.js","../node_modules/@polkadot/types-codec/primitive/U16.js","../node_modules/@polkadot/types-codec/primitive/U128.js","../node_modules/@polkadot/types-codec/primitive/U256.js","../node_modules/@polkadot/types-codec/primitive/USize.js","../node_modules/@polkadot/types/primitive/Data.js","../node_modules/@polkadot/types/metadata/util/getSiName.js","../node_modules/@polkadot/types/util/storage.js","../node_modules/@polkadot/types/primitive/StorageKey.js","../node_modules/@polkadot/types/interfaces/metadata/runtime.js","../node_modules/@polkadot/types/interfaces/scaleInfo/v1.js","../node_modules/@polkadot/types/interfaces/metadata/definitions.js","../node_modules/@polkadot/types/interfaces/metadata/v9.js","../node_modules/@polkadot/types/interfaces/metadata/v10.js","../node_modules/@polkadot/types/interfaces/metadata/v11.js","../node_modules/@polkadot/types/interfaces/metadata/hashers.js","../node_modules/@polkadot/types/interfaces/metadata/v12.js","../node_modules/@polkadot/types/interfaces/metadata/v13.js","../node_modules/@polkadot/types/interfaces/metadata/v14.js","../node_modules/@polkadot/types/interfaces/metadata/v15.js","../node_modules/@polkadot/types/interfaces/runtime/runtime.js","../node_modules/@polkadot/types/interfaces/runtime/definitions.js","../node_modules/@polkadot/types/interfaces/scaleInfo/definitions.js","../node_modules/@polkadot/types/interfaces/scaleInfo/v0.js","../node_modules/@polkadot/types/interfaces/assetConversion/definitions.js","../node_modules/@polkadot/types/interfaces/assetConversion/runtime.js","../node_modules/@polkadot/types/interfaces/assets/definitions.js","../node_modules/@polkadot/types/interfaces/assets/runtime.js","../node_modules/@polkadot/types/interfaces/aura/definitions.js","../node_modules/@polkadot/types/interfaces/aura/runtime.js","../node_modules/@polkadot/types/interfaces/authorship/definitions.js","../node_modules/@polkadot/types/interfaces/babe/runtime.js","../node_modules/@polkadot/types/interfaces/babe/definitions.js","../node_modules/@polkadot/types/interfaces/babe/rpc.js","../node_modules/@polkadot/types/interfaces/balances/definitions.js","../node_modules/@polkadot/types/interfaces/beefy/runtime.js","../node_modules/@polkadot/types/interfaces/beefy/definitions.js","../node_modules/@polkadot/types/interfaces/beefy/rpc.js","../node_modules/@polkadot/types/interfaces/benchmark/definitions.js","../node_modules/@polkadot/types/interfaces/benchmark/runtime.js","../node_modules/@polkadot/types/interfaces/blockbuilder/runtime.js","../node_modules/@polkadot/types/interfaces/blockbuilder/definitions.js","../node_modules/@polkadot/types/interfaces/collective/definitions.js","../node_modules/@polkadot/types/interfaces/consensus/definitions.js","../node_modules/@polkadot/types/interfaces/contracts/runtime.js","../node_modules/@polkadot/types/interfaces/contracts/definitions.js","../node_modules/@polkadot/types/interfaces/contracts/rpc.js","../node_modules/@polkadot/types/interfaces/democracy/definitions.js","../node_modules/@polkadot/types/interfaces/dev/definitions.js","../node_modules/@polkadot/types/interfaces/dev/rpc.js","../node_modules/@polkadot/types/interfaces/discovery/definitions.js","../node_modules/@polkadot/types/interfaces/discovery/runtime.js","../node_modules/@polkadot/types/interfaces/elections/definitions.js","../node_modules/@polkadot/types/interfaces/engine/definitions.js","../node_modules/@polkadot/types/interfaces/engine/rpc.js","../node_modules/@polkadot/types/interfaces/evm/definitions.js","../node_modules/@polkadot/types/interfaces/extrinsics/definitions.js","../node_modules/@polkadot/types/interfaces/fungibles/definitions.js","../node_modules/@polkadot/types/interfaces/fungibles/runtime.js","../node_modules/@polkadot/types/interfaces/genericAsset/definitions.js","../node_modules/@polkadot/types/interfaces/gilt/definitions.js","../node_modules/@polkadot/types/interfaces/grandpa/runtime.js","../node_modules/@polkadot/types/interfaces/grandpa/definitions.js","../node_modules/@polkadot/types/interfaces/grandpa/rpc.js","../node_modules/@polkadot/types/interfaces/identity/definitions.js","../node_modules/@polkadot/types/interfaces/imOnline/definitions.js","../node_modules/@polkadot/types/interfaces/lottery/definitions.js","../node_modules/@polkadot/types/interfaces/mmr/definitions.js","../node_modules/@polkadot/types/interfaces/mmr/rpc.js","../node_modules/@polkadot/types/interfaces/mmr/runtime.js","../node_modules/@polkadot/types/interfaces/nfts/definitions.js","../node_modules/@polkadot/types/interfaces/nfts/runtime.js","../node_modules/@polkadot/types/interfaces/nompools/definitions.js","../node_modules/@polkadot/types/interfaces/nompools/runtime.js","../node_modules/@polkadot/types/interfaces/offences/definitions.js","../node_modules/@polkadot/types/interfaces/pow/definitions.js","../node_modules/@polkadot/types/interfaces/pow/runtime.js","../node_modules/@polkadot/types/interfaces/proxy/definitions.js","../node_modules/@polkadot/types/interfaces/recovery/definitions.js","../node_modules/@polkadot/types/interfaces/scheduler/definitions.js","../node_modules/@polkadot/types/interfaces/session/definitions.js","../node_modules/@polkadot/types/interfaces/session/runtime.js","../node_modules/@polkadot/types/interfaces/society/definitions.js","../node_modules/@polkadot/types/interfaces/staking/definitions.js","../node_modules/@polkadot/types/interfaces/staking/runtime.js","../node_modules/@polkadot/types/interfaces/support/definitions.js","../node_modules/@polkadot/types/interfaces/syncstate/definitions.js","../node_modules/@polkadot/types/interfaces/syncstate/rpc.js","../node_modules/@polkadot/types/interfaces/system/definitions.js","../node_modules/@polkadot/types/interfaces/system/rpc.js","../node_modules/@polkadot/types/interfaces/system/runtime.js","../node_modules/@polkadot/types/interfaces/treasury/definitions.js","../node_modules/@polkadot/types/interfaces/txpayment/definitions.js","../node_modules/@polkadot/types/interfaces/txqueue/definitions.js","../node_modules/@polkadot/types/interfaces/txqueue/runtime.js","../node_modules/@polkadot/types/interfaces/uniques/definitions.js","../node_modules/@polkadot/types/interfaces/utility/definitions.js","../node_modules/@polkadot/types/interfaces/vesting/definitions.js","../node_modules/@polkadot/types/interfaces/attestations/definitions.js","../node_modules/@polkadot/types/interfaces/bridges/definitions.js","../node_modules/@polkadot/types/interfaces/claims/definitions.js","../node_modules/@polkadot/types/interfaces/crowdloan/definitions.js","../node_modules/@polkadot/types/interfaces/cumulus/definitions.js","../node_modules/@polkadot/types/interfaces/cumulus/runtime.js","../node_modules/@polkadot/types/interfaces/finality/runtime.js","../node_modules/@polkadot/types/interfaces/finality/definitions.js","../node_modules/@polkadot/types/interfaces/parachains/runtime.js","../node_modules/@polkadot/types/interfaces/parachains/slots.js","../node_modules/@polkadot/types/interfaces/parachains/definitions.js","../node_modules/@polkadot/types/interfaces/parachains/hrmp.js","../node_modules/@polkadot/types/interfaces/poll/definitions.js","../node_modules/@polkadot/types/interfaces/purchase/definitions.js","../node_modules/@polkadot/types-create/util/xcm.js","../node_modules/@polkadot/types/interfaces/xcm/v0.js","../node_modules/@polkadot/types/interfaces/xcm/definitions.js","../node_modules/@polkadot/types/interfaces/xcm/v1.js","../node_modules/@polkadot/types/interfaces/xcm/v2.js","../node_modules/@polkadot/types/interfaces/contractsAbi/definitions.js","../node_modules/@polkadot/types/interfaces/eth/runtime.js","../node_modules/@polkadot/types/interfaces/eth/definitions.js","../node_modules/@polkadot/types/interfaces/eth/rpc.js","../node_modules/@polkadot/types/interfaces/nimbus/definitions.js","../node_modules/@polkadot/types/interfaces/nimbus/runtime.js","../node_modules/@polkadot/types/interfaces/ormlOracle/definitions.js","../node_modules/@polkadot/types/interfaces/ormlOracle/runtime.js","../node_modules/@polkadot/types/interfaces/ormlTokens/definitions.js","../node_modules/@polkadot/types/interfaces/ormlTokens/runtime.js","../node_modules/@polkadot/types/interfaces/rpc/definitions.js","../node_modules/@polkadot/types/interfaces/rpc/rpc.js","../node_modules/@polkadot/types/interfaces/author/definitions.js","../node_modules/@polkadot/types/interfaces/author/rpc.js","../node_modules/@polkadot/types/interfaces/chain/definitions.js","../node_modules/@polkadot/types/interfaces/chain/rpc.js","../node_modules/@polkadot/types/interfaces/childstate/definitions.js","../node_modules/@polkadot/types/interfaces/childstate/rpc.js","../node_modules/@polkadot/types/interfaces/offchain/definitions.js","../node_modules/@polkadot/types/interfaces/offchain/rpc.js","../node_modules/@polkadot/types/interfaces/offchain/runtime.js","../node_modules/@polkadot/types/interfaces/payment/runtime.js","../node_modules/@polkadot/types/interfaces/payment/definitions.js","../node_modules/@polkadot/types/interfaces/payment/rpc.js","../node_modules/@polkadot/types/interfaces/state/definitions.js","../node_modules/@polkadot/types/interfaces/state/rpc.js","../node_modules/@polkadot/types/create/lazy.js","../node_modules/@polkadot/types/metadata/decorate/util.js","../node_modules/@polkadot/types/metadata/decorate/extrinsics/index.js","../node_modules/@polkadot/types/metadata/decorate/extrinsics/createUnchecked.js","../node_modules/@polkadot/types/metadata/decorate/errors/index.js","../node_modules/@polkadot/types/metadata/decorate/events/index.js","../node_modules/@polkadot/types/metadata/decorate/constants/index.js","../node_modules/@polkadot/types/metadata/util/toCallsOnly.js","../node_modules/@polkadot/types/metadata/util/flattenUniq.js","../node_modules/@polkadot/types/metadata/util/extractTypes.js","../node_modules/@polkadot/types/metadata/util/validateTypes.js","../node_modules/@polkadot/types/metadata/util/getUniqTypes.js","../node_modules/@polkadot/types/metadata/v9/toV10.js","../node_modules/@polkadot/types/metadata/v10/toV11.js","../node_modules/@polkadot/types/metadata/v11/toV12.js","../node_modules/@polkadot/types/metadata/v12/toV13.js","../node_modules/@polkadot/types/interfaces/alias.js","../node_modules/@polkadot/types/metadata/v13/toV14.js","../node_modules/@polkadot/types/metadata/v14/toV15.js","../node_modules/@polkadot/types/metadata/v15/toLatest.js","../node_modules/@polkadot/types/metadata/MagicNumber.js","../node_modules/@polkadot/types/metadata/MetadataVersioned.js","../node_modules/@polkadot/types/metadata/versions.js","../node_modules/@polkadot/types/metadata/Metadata.js","../node_modules/@polkadot/types-create/util/encodeTypes.js","../node_modules/@polkadot/types/metadata/PortableRegistry/PortableRegistry.js","../node_modules/@polkadot/types/create/registry.js","../node_modules/@polkadot/types-known/chain/index.js","../node_modules/@polkadot/types-known/spec/centrifuge-chain.js","../node_modules/@polkadot/types-known/spec/kusama.js","../node_modules/@polkadot/types-known/spec/node.js","../node_modules/@polkadot/types-known/spec/node-template.js","../node_modules/@polkadot/types-known/spec/polkadot.js","../node_modules/@polkadot/types-known/spec/rococo.js","../node_modules/@polkadot/types-known/spec/shell.js","../node_modules/@polkadot/types-known/spec/statemint.js","../node_modules/@polkadot/types-known/spec/westend.js","../node_modules/@polkadot/types-known/spec/index.js","../node_modules/@polkadot/types-known/upgrades/e2e/kusama.js","../node_modules/@polkadot/types-known/upgrades/e2e/polkadot.js","../node_modules/@polkadot/types-known/upgrades/e2e/westend.js","../node_modules/@polkadot/types-known/upgrades/index.js","../node_modules/@polkadot/types-known/util.js","../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","../node_modules/rxjs/src/internal/Subject.ts","../node_modules/rxjs/src/internal/BehaviorSubject.ts","../node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts","../node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts","../node_modules/rxjs/src/internal/observable/combineLatest.ts","../node_modules/rxjs/src/internal/util/createObject.ts","../node_modules/rxjs/src/internal/operators/tap.ts","../node_modules/rxjs/src/internal/operators/reduce.ts","../node_modules/rxjs/src/internal/operators/scanInternals.ts","../node_modules/rxjs/src/internal/operators/toArray.ts","../node_modules/@polkadot/api-derive/util/lazy.js","../node_modules/@polkadot/util/memoize.js","../node_modules/rxjs/src/internal/operators/catchError.ts","../node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts","../node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts","../node_modules/rxjs/src/internal/ReplaySubject.ts","../node_modules/rxjs/src/internal/operators/refCount.ts","../node_modules/rxjs/src/internal/observable/ConnectableObservable.ts","../node_modules/rxjs/src/internal/operators/connect.ts","../node_modules/rxjs/src/internal/observable/fromSubscribable.ts","../node_modules/rxjs/src/internal/operators/publishReplay.ts","../node_modules/rxjs/src/internal/operators/multicast.ts","../node_modules/rxjs/src/internal/scheduler/Action.ts","../node_modules/rxjs/src/internal/util/Immediate.ts","../node_modules/rxjs/src/internal/scheduler/intervalProvider.ts","../node_modules/rxjs/src/internal/scheduler/AsyncAction.ts","../node_modules/rxjs/src/internal/scheduler/immediateProvider.ts","../node_modules/rxjs/src/internal/scheduler/AsapAction.ts","../node_modules/rxjs/src/internal/Scheduler.ts","../node_modules/rxjs/src/internal/scheduler/asap.ts","../node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts","../node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts","../node_modules/@polkadot/rpc-core/util/refCountDelay.js","../node_modules/@polkadot/rpc-core/util/drr.js","../node_modules/@polkadot/rpc-core/util/memo.js","../node_modules/@polkadot/api-derive/accounts/accountId.js","../node_modules/@polkadot/api-derive/accounts/flags.js","../node_modules/@polkadot/api-derive/accounts/idAndIndex.js","../node_modules/@polkadot/api-derive/util/first.js","../node_modules/@polkadot/api-derive/accounts/identity.js","../node_modules/@polkadot/api-derive/accounts/idToIndex.js","../node_modules/rxjs/src/internal/operators/mergeMap.ts","../node_modules/rxjs/src/internal/operators/mergeInternals.ts","../node_modules/rxjs/src/internal/operators/concatAll.ts","../node_modules/rxjs/src/internal/operators/mergeAll.ts","../node_modules/rxjs/src/internal/observable/concat.ts","../node_modules/rxjs/src/internal/operators/startWith.ts","../node_modules/@polkadot/api-derive/accounts/indexes.js","../node_modules/@polkadot/api-derive/accounts/indexToId.js","../node_modules/@polkadot/api-derive/accounts/info.js","../node_modules/@polkadot/api-derive/collective/helpers.js","../node_modules/@polkadot/api-derive/collective/members.js","../node_modules/@polkadot/api-derive/collective/proposals.js","../node_modules/@polkadot/api-derive/collective/prime.js","../node_modules/@polkadot/api-derive/alliance/index.js","../node_modules/@polkadot/api-derive/bagsList/util.js","../node_modules/@polkadot/api-derive/bagsList/get.js","../node_modules/@polkadot/api-derive/bagsList/getExpanded.js","../node_modules/@polkadot/util/nextTick.js","../node_modules/@polkadot/api-derive/bagsList/listNodes.js","../node_modules/@polkadot/util/bi/helpers.js","../node_modules/@polkadot/util/bn/min.js","../node_modules/@polkadot/api-derive/balances/all.js","../node_modules/@polkadot/api-derive/balances/account.js","../node_modules/@polkadot/api-derive/balances/votingBalances.js","../node_modules/@polkadot/api-derive/balances/index.js","../node_modules/@polkadot/api-derive/bounties/helpers/filterBountyProposals.js","../node_modules/@polkadot/api-derive/bounties/bounties.js","../node_modules/@polkadot/util/is/compact.js","../node_modules/@polkadot/api-derive/util/blockNumber.js","../node_modules/@polkadot/api-derive/chain/util.js","../node_modules/@polkadot/api-derive/chain/bestNumber.js","../node_modules/@polkadot/api-derive/chain/bestNumberFinalized.js","../node_modules/@polkadot/api-derive/chain/bestNumberLag.js","../node_modules/@polkadot/api-derive/type/util.js","../node_modules/@polkadot/api-derive/chain/getBlock.js","../node_modules/@polkadot/api-derive/type/SignedBlockExtended.js","../node_modules/@polkadot/api-derive/chain/getBlockByNumber.js","../node_modules/@polkadot/api-derive/type/HeaderExtended.js","../node_modules/@polkadot/api-derive/chain/getHeader.js","../node_modules/@polkadot/api-derive/chain/subscribeFinalizedBlocks.js","../node_modules/@polkadot/api-derive/chain/subscribeFinalizedHeads.js","../node_modules/@polkadot/api-derive/chain/subscribeNewBlocks.js","../node_modules/@polkadot/api-derive/chain/subscribeNewHeads.js","../node_modules/@polkadot/api-derive/contracts/fees.js","../node_modules/@polkadot/api-derive/council/votes.js","../node_modules/@polkadot/api-derive/council/votesOf.js","../node_modules/@polkadot/api-derive/council/index.js","../node_modules/@polkadot/api-derive/crowdloan/childKey.js","../node_modules/rxjs/src/internal/observable/empty.ts","../node_modules/@polkadot/util/array/flatten.js","../node_modules/@polkadot/api-derive/crowdloan/util.js","../node_modules/@polkadot/api-derive/crowdloan/contributions.js","../node_modules/@polkadot/api-derive/crowdloan/ownContributions.js","../node_modules/@polkadot/util/string/toHex.js","../node_modules/@polkadot/util/bn/sqrt.js","../node_modules/@polkadot/api-derive/democracy/util.js","../node_modules/@polkadot/api-derive/democracy/dispatchQueue.js","../node_modules/@polkadot/api-derive/democracy/locks.js","../node_modules/@polkadot/api-derive/democracy/nextExternal.js","../node_modules/@polkadot/api-derive/democracy/preimages.js","../node_modules/@polkadot/api-derive/democracy/proposals.js","../node_modules/@polkadot/api-derive/democracy/referendumIds.js","../node_modules/@polkadot/api-derive/democracy/referendums.js","../node_modules/@polkadot/api-derive/democracy/referendumsActive.js","../node_modules/@polkadot/api-derive/democracy/referendumsFinished.js","../node_modules/@polkadot/api-derive/democracy/referendumsInfo.js","../node_modules/@polkadot/api-derive/democracy/sqrtElectorate.js","../node_modules/@polkadot/api-derive/elections/info.js","../node_modules/@polkadot/api-derive/imOnline/receivedHeartbeats.js","../node_modules/@polkadot/api-derive/membership/index.js","../node_modules/@polkadot/api-derive/parachains/util.js","../node_modules/@polkadot/api-derive/parachains/info.js","../node_modules/@polkadot/api-derive/parachains/overview.js","../node_modules/@polkadot/api-derive/session/indexes.js","../node_modules/@polkadot/api-derive/session/info.js","../node_modules/@polkadot/api-derive/session/progress.js","../node_modules/@polkadot/api-derive/society/candidates.js","../node_modules/@polkadot/api-derive/society/info.js","../node_modules/@polkadot/api-derive/society/member.js","../node_modules/@polkadot/api-derive/society/members.js","../node_modules/@polkadot/api-derive/staking/account.js","../node_modules/@polkadot/api-derive/staking/currentPoints.js","../node_modules/@polkadot/api-derive/staking/electedInfo.js","../node_modules/@polkadot/api-derive/util/cacheImpl.js","../node_modules/@polkadot/api-derive/util/cache.js","../node_modules/@polkadot/api-derive/staking/cache.js","../node_modules/@polkadot/util/array/chunk.js","../node_modules/@polkadot/api-derive/staking/util.js","../node_modules/@polkadot/api-derive/staking/erasExposure.js","../node_modules/@polkadot/api-derive/staking/erasHistoric.js","../node_modules/@polkadot/api-derive/staking/erasPoints.js","../node_modules/@polkadot/api-derive/staking/erasPrefs.js","../node_modules/@polkadot/api-derive/staking/erasRewards.js","../node_modules/@polkadot/api-derive/staking/erasSlashes.js","../node_modules/@polkadot/api-derive/staking/keys.js","../node_modules/@polkadot/api-derive/staking/overview.js","../node_modules/@polkadot/api-derive/staking/ownExposure.js","../node_modules/@polkadot/api-derive/staking/ownSlashes.js","../node_modules/@polkadot/api-derive/staking/query.js","../node_modules/@polkadot/api-derive/staking/stakerExposure.js","../node_modules/@polkadot/api-derive/staking/stakerPoints.js","../node_modules/@polkadot/api-derive/staking/stakerPrefs.js","../node_modules/@polkadot/api-derive/staking/stakerRewards.js","../node_modules/@polkadot/api-derive/staking/stakerSlashes.js","../node_modules/@polkadot/api-derive/staking/stashes.js","../node_modules/@polkadot/api-derive/staking/validators.js","../node_modules/@polkadot/api-derive/staking/waitingInfo.js","../node_modules/@polkadot/api-derive/technicalCommittee/index.js","../node_modules/@polkadot/api-derive/treasury/proposals.js","../node_modules/@polkadot/api-derive/tx/events.js","../node_modules/@polkadot/api-derive/tx/constants.js","../node_modules/@polkadot/api-derive/tx/signingInfo.js","../node_modules/@polkadot/api-derive/derive.js","../node_modules/@polkadot/api-derive/bundle.js","../node_modules/@polkadot/types/interfaces/jsonrpc.js","../node_modules/@polkadot/rpc-core/bundle.js","../node_modules/@polkadot/util/bi/consts.js","../node_modules/@polkadot/util-crypto/xxhash/xxhash64.js","../node_modules/@polkadot/util-crypto/xxhash/asU8a.js","../node_modules/@polkadot/types/metadata/decorate/storage/getHasher.js","../node_modules/@polkadot/types/metadata/decorate/storage/createFunction.js","../node_modules/@polkadot/types/metadata/decorate/storage/util.js","../node_modules/@polkadot/types/metadata/decorate/storage/substrate.js","../node_modules/@polkadot/types/metadata/decorate/storage/index.js","../node_modules/@polkadot/types/metadata/decorate/storage/getStorage.js","../node_modules/@polkadot/util/string/lowerFirst.js","../node_modules/rxjs/src/internal/operators/throwIfEmpty.ts","../node_modules/rxjs/src/internal/operators/first.ts","../node_modules/rxjs/src/internal/operators/filter.ts","../node_modules/rxjs/src/internal/operators/take.ts","../node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts","../node_modules/@polkadot/api/util/isKeyringPair.js","../node_modules/@polkadot/api/util/logging.js","../node_modules/@polkadot/api/util/filterEvents.js","../node_modules/@polkadot/api/submittable/Result.js","../node_modules/@polkadot/api/submittable/createClass.js","../node_modules/@polkadot/api/submittable/createSubmittable.js","../node_modules/@polkadot/api/util/augmentObject.js","../node_modules/@polkadot/util/object/clear.js","../node_modules/@polkadot/api/util/decorate.js","../node_modules/@polkadot/api/util/validate.js","../node_modules/@polkadot/api/base/Events.js","../node_modules/@polkadot/api/base/Decorate.js","../node_modules/@polkadot/types/metadata/decorate/index.js","../node_modules/@polkadot/api/base/Init.js","../node_modules/@polkadot/util-crypto/crypto.js","../node_modules/@polkadot/api/base/Getters.js","../node_modules/@polkadot/api/base/index.js","../node_modules/@polkadot/api/promise/Combinator.js","../node_modules/@polkadot/api/promise/decorateMethod.js","../node_modules/@polkadot/api/promise/Api.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_8.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_10.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_12.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_17.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/mergeType.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_18.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_19.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_20.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_21.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_23.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_25.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_2700.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_10410.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_10720.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_10800.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_10900.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/runtime/did.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/runtime/staking.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/runtime/publicCredentials.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/index.js","../node_modules/@kiltprotocol/type-definitions/lib/esm/types_9.js","utils/useConnect.ts","utils/chain.ts","utils/index.ts","webpack://staking-platform/./src/components/Dashboard/AccountInfo.module.css?2592","webpack://staking-platform/./src/components/Button/Button.module.css?5aab","components/Button/Button.tsx","components/Dashboard/AccountInfo.tsx","components/Dashboard/Meta.tsx","utils/BlockchainDataContext.ts","components/Dashboard/Accounts.tsx","webpack://staking-platform/./src/container/IdentityView/IdentityView.module.css?f5c2","utils/conversion.ts","utils/timeConvert.ts","utils/useTxSubmitter.ts","utils/useModal.ts","utils/shortenAddress.ts","icons/arrow_down.svg","icons/arrow_straight.svg","icons/arrow_up.svg","icons/block_new.svg","icons/block.svg","icons/bulb_gray.svg","icons/bulb_yellow.svg","icons/check.svg","icons/close.svg","icons/exclamation_new.svg","icons/exclamation.svg","icons/fav_gray.svg","icons/fav_yellow.svg","icons/Built_on_KILT.svg","icons/next_session_gray.svg","icons/next_session_yellow.svg","icons/order_white.svg","icons/order_yellow.svg","icons/pickax_gray.svg","icons/pickax_orange.svg","icons/pickax_yellow.svg","icons/search.svg","icons/skateboarder.svg","icons/time.svg","icons/tokens_gray.svg","icons/tokens_white.svg","icons/tokens_yellow.svg","icons/plus_active.svg","icons/minus_active.svg","icons/plus_inactive.svg","icons/minus_inactive.svg","icons/Firefox_AddOn.svg","icons/Google_WebStore.svg","icons/sporran.svg","webpack://staking-platform/./src/components/Icon/Icon.module.css?9822","components/Icon/Icon.tsx","webpack://staking-platform/./src/components/Modal/Modal.module.css?00dc","components/Modal/Modal.tsx","components/RewardsModal/RewardsModal.tsx","container/IdentityView/IdentityView.tsx","webpack://staking-platform/./src/components/Scale/Scale.module.css?c5b1","components/Scale/Scale.tsx","webpack://staking-platform/./src/components/Onboarding/Onboarding.module.css?575b","webpack://staking-platform/./src/components/Overlays/Overlays.module.css?c15c","components/Overlays/Overlays.tsx","components/Onboarding/NoExtension.tsx","components/Onboarding/NoAccount.tsx","components/Onboarding/NoTokens.tsx","components/Onboarding/NotAcceptedTerms.tsx","components/Onboarding/NoData.tsx","components/Onboarding/Onboarding.tsx","components/Dashboard/Dashboard.tsx","webpack://staking-platform/./src/components/CollatorList/CollatorList.module.css?12bc","webpack://staking-platform/./src/styles/row.module.css?4d80","webpack://staking-platform/./src/components/CollatorListItem/CollatorListItem.module.css?ede6","webpack://staking-platform/./src/components/Input/Input.module.css?bfb2","components/Input/Input.tsx","utils/stakeStatus.ts","components/StakeModal/StakeModal.tsx","components/UnstakeRow/UnstakeRow.tsx","components/StakeRow/StakeRow.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/memoize/dist/memoize.browser.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-a8309070.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-select/dist/stateManager-845a3300.esm.js","../node_modules/react-select/dist/react-select.esm.js","components/Select/Select.tsx","container/IdentitySelector/IdentitySelector.tsx","components/NewStakeRow/NewStakeRow.tsx","webpack://staking-platform/./src/components/Collator/Collator.module.css?4d37","webpack://staking-platform/./src/components/Web3Name/Web3Name.module.css?bf07","components/Web3Name/Web3Name.tsx","components/Collator/Collator.tsx","components/CollatorRow/CollatorRow.tsx","components/CollatorListItem/CollatorListItem.tsx","components/CollatorList/CollatorList.tsx","webpack://staking-platform/./src/components/Header/Header.module.css?ac76","components/Header/Header.tsx","webpack://staking-platform/./src/components/Footer/Footer.module.css?a62e","components/Footer/Footer.tsx","webpack://staking-platform/./src/components/ChainInfo/ChainInfo.module.css?dcf3","components/ChainInfo/ChainInfo.tsx","utils/sessionCountdown.ts","webpack://staking-platform/./src/container/Page/Page.module.css?7d01","utils/polling.ts","container/BlockchainData/BlockchainData.tsx","utils/useExtension.ts","container/ErrorNotification/ErrorNotification.tsx","components/LoadingDataNotification/LoadingDataNotification.tsx","components/ConnectionNotification/ConnectionNotification.tsx","container/BlockchainNotification/BlockchainNotification.tsx","container/Page/Page.tsx","App.tsx","reportWebVitals.ts","container/ErrorBoundary/ErrorBoundary.tsx","index.tsx"],"sourcesContent":["(function (module, exports) {\n  'use strict';\n\n  // Utils\n  function assert (val, msg) {\n    if (!val) throw new Error(msg || 'Assertion failed');\n  }\n\n  // Could use `inherits` module, but don't want to move from single file\n  // architecture yet.\n  function inherits (ctor, superCtor) {\n    ctor.super_ = superCtor;\n    var TempCtor = function () {};\n    TempCtor.prototype = superCtor.prototype;\n    ctor.prototype = new TempCtor();\n    ctor.prototype.constructor = ctor;\n  }\n\n  // BN\n\n  function BN (number, base, endian) {\n    if (BN.isBN(number)) {\n      return number;\n    }\n\n    this.negative = 0;\n    this.words = null;\n    this.length = 0;\n\n    // Reduction context\n    this.red = null;\n\n    if (number !== null) {\n      if (base === 'le' || base === 'be') {\n        endian = base;\n        base = 10;\n      }\n\n      this._init(number || 0, base || 10, endian || 'be');\n    }\n  }\n  if (typeof module === 'object') {\n    module.exports = BN;\n  } else {\n    exports.BN = BN;\n  }\n\n  BN.BN = BN;\n  BN.wordSize = 26;\n\n  var Buffer;\n  try {\n    if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n      Buffer = window.Buffer;\n    } else {\n      Buffer = require('buffer').Buffer;\n    }\n  } catch (e) {\n  }\n\n  BN.isBN = function isBN (num) {\n    if (num instanceof BN) {\n      return true;\n    }\n\n    return num !== null && typeof num === 'object' &&\n      num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n  };\n\n  BN.max = function max (left, right) {\n    if (left.cmp(right) > 0) return left;\n    return right;\n  };\n\n  BN.min = function min (left, right) {\n    if (left.cmp(right) < 0) return left;\n    return right;\n  };\n\n  BN.prototype._init = function init (number, base, endian) {\n    if (typeof number === 'number') {\n      return this._initNumber(number, base, endian);\n    }\n\n    if (typeof number === 'object') {\n      return this._initArray(number, base, endian);\n    }\n\n    if (base === 'hex') {\n      base = 16;\n    }\n    assert(base === (base | 0) && base >= 2 && base <= 36);\n\n    number = number.toString().replace(/\\s+/g, '');\n    var start = 0;\n    if (number[0] === '-') {\n      start++;\n      this.negative = 1;\n    }\n\n    if (start < number.length) {\n      if (base === 16) {\n        this._parseHex(number, start, endian);\n      } else {\n        this._parseBase(number, base, start);\n        if (endian === 'le') {\n          this._initArray(this.toArray(), base, endian);\n        }\n      }\n    }\n  };\n\n  BN.prototype._initNumber = function _initNumber (number, base, endian) {\n    if (number < 0) {\n      this.negative = 1;\n      number = -number;\n    }\n    if (number < 0x4000000) {\n      this.words = [number & 0x3ffffff];\n      this.length = 1;\n    } else if (number < 0x10000000000000) {\n      this.words = [\n        number & 0x3ffffff,\n        (number / 0x4000000) & 0x3ffffff\n      ];\n      this.length = 2;\n    } else {\n      assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n      this.words = [\n        number & 0x3ffffff,\n        (number / 0x4000000) & 0x3ffffff,\n        1\n      ];\n      this.length = 3;\n    }\n\n    if (endian !== 'le') return;\n\n    // Reverse the bytes\n    this._initArray(this.toArray(), base, endian);\n  };\n\n  BN.prototype._initArray = function _initArray (number, base, endian) {\n    // Perhaps a Uint8Array\n    assert(typeof number.length === 'number');\n    if (number.length <= 0) {\n      this.words = [0];\n      this.length = 1;\n      return this;\n    }\n\n    this.length = Math.ceil(number.length / 3);\n    this.words = new Array(this.length);\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    var j, w;\n    var off = 0;\n    if (endian === 'be') {\n      for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n        w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n        this.words[j] |= (w << off) & 0x3ffffff;\n        this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n        off += 24;\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    } else if (endian === 'le') {\n      for (i = 0, j = 0; i < number.length; i += 3) {\n        w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n        this.words[j] |= (w << off) & 0x3ffffff;\n        this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n        off += 24;\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    }\n    return this._strip();\n  };\n\n  function parseHex4Bits (string, index) {\n    var c = string.charCodeAt(index);\n    // '0' - '9'\n    if (c >= 48 && c <= 57) {\n      return c - 48;\n    // 'A' - 'F'\n    } else if (c >= 65 && c <= 70) {\n      return c - 55;\n    // 'a' - 'f'\n    } else if (c >= 97 && c <= 102) {\n      return c - 87;\n    } else {\n      assert(false, 'Invalid character in ' + string);\n    }\n  }\n\n  function parseHexByte (string, lowerBound, index) {\n    var r = parseHex4Bits(string, index);\n    if (index - 1 >= lowerBound) {\n      r |= parseHex4Bits(string, index - 1) << 4;\n    }\n    return r;\n  }\n\n  BN.prototype._parseHex = function _parseHex (number, start, endian) {\n    // Create possibly bigger array to ensure that it fits the number\n    this.length = Math.ceil((number.length - start) / 6);\n    this.words = new Array(this.length);\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    // 24-bits chunks\n    var off = 0;\n    var j = 0;\n\n    var w;\n    if (endian === 'be') {\n      for (i = number.length - 1; i >= start; i -= 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    } else {\n      var parseLength = number.length - start;\n      for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    }\n\n    this._strip();\n  };\n\n  function parseBase (str, start, end, mul) {\n    var r = 0;\n    var b = 0;\n    var len = Math.min(str.length, end);\n    for (var i = start; i < len; i++) {\n      var c = str.charCodeAt(i) - 48;\n\n      r *= mul;\n\n      // 'a'\n      if (c >= 49) {\n        b = c - 49 + 0xa;\n\n      // 'A'\n      } else if (c >= 17) {\n        b = c - 17 + 0xa;\n\n      // '0' - '9'\n      } else {\n        b = c;\n      }\n      assert(c >= 0 && b < mul, 'Invalid character');\n      r += b;\n    }\n    return r;\n  }\n\n  BN.prototype._parseBase = function _parseBase (number, base, start) {\n    // Initialize as zero\n    this.words = [0];\n    this.length = 1;\n\n    // Find length of limb in base\n    for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n      limbLen++;\n    }\n    limbLen--;\n    limbPow = (limbPow / base) | 0;\n\n    var total = number.length - start;\n    var mod = total % limbLen;\n    var end = Math.min(total, total - mod) + start;\n\n    var word = 0;\n    for (var i = start; i < end; i += limbLen) {\n      word = parseBase(number, i, i + limbLen, base);\n\n      this.imuln(limbPow);\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    if (mod !== 0) {\n      var pow = 1;\n      word = parseBase(number, i, number.length, base);\n\n      for (i = 0; i < mod; i++) {\n        pow *= base;\n      }\n\n      this.imuln(pow);\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    this._strip();\n  };\n\n  BN.prototype.copy = function copy (dest) {\n    dest.words = new Array(this.length);\n    for (var i = 0; i < this.length; i++) {\n      dest.words[i] = this.words[i];\n    }\n    dest.length = this.length;\n    dest.negative = this.negative;\n    dest.red = this.red;\n  };\n\n  function move (dest, src) {\n    dest.words = src.words;\n    dest.length = src.length;\n    dest.negative = src.negative;\n    dest.red = src.red;\n  }\n\n  BN.prototype._move = function _move (dest) {\n    move(dest, this);\n  };\n\n  BN.prototype.clone = function clone () {\n    var r = new BN(null);\n    this.copy(r);\n    return r;\n  };\n\n  BN.prototype._expand = function _expand (size) {\n    while (this.length < size) {\n      this.words[this.length++] = 0;\n    }\n    return this;\n  };\n\n  // Remove leading `0` from `this`\n  BN.prototype._strip = function strip () {\n    while (this.length > 1 && this.words[this.length - 1] === 0) {\n      this.length--;\n    }\n    return this._normSign();\n  };\n\n  BN.prototype._normSign = function _normSign () {\n    // -0 = 0\n    if (this.length === 1 && this.words[0] === 0) {\n      this.negative = 0;\n    }\n    return this;\n  };\n\n  // Check Symbol.for because not everywhere where Symbol defined\n  // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n  if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n    try {\n      BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n    } catch (e) {\n      BN.prototype.inspect = inspect;\n    }\n  } else {\n    BN.prototype.inspect = inspect;\n  }\n\n  function inspect () {\n    return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  }\n\n  /*\n\n  var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n\n  var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n\n  */\n\n  var zeros = [\n    '',\n    '0',\n    '00',\n    '000',\n    '0000',\n    '00000',\n    '000000',\n    '0000000',\n    '00000000',\n    '000000000',\n    '0000000000',\n    '00000000000',\n    '000000000000',\n    '0000000000000',\n    '00000000000000',\n    '000000000000000',\n    '0000000000000000',\n    '00000000000000000',\n    '000000000000000000',\n    '0000000000000000000',\n    '00000000000000000000',\n    '000000000000000000000',\n    '0000000000000000000000',\n    '00000000000000000000000',\n    '000000000000000000000000',\n    '0000000000000000000000000'\n  ];\n\n  var groupSizes = [\n    0, 0,\n    25, 16, 12, 11, 10, 9, 8,\n    8, 7, 7, 7, 7, 6, 6,\n    6, 6, 6, 6, 6, 5, 5,\n    5, 5, 5, 5, 5, 5, 5,\n    5, 5, 5, 5, 5, 5, 5\n  ];\n\n  var groupBases = [\n    0, 0,\n    33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n    43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n    16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n    6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n    24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n  ];\n\n  BN.prototype.toString = function toString (base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n\n    var out;\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = (((w << off) | carry) & 0xffffff).toString(16);\n        carry = (w >>> (24 - off)) & 0xffffff;\n        off += 2;\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n      }\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base];\n      // var groupBase = Math.pow(base, groupSize);\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n      while (!c.isZero()) {\n        var r = c.modrn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber () {\n    var ret = this.words[0];\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n    return (this.negative !== 0) ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON () {\n    return this.toString(16, 2);\n  };\n\n  if (Buffer) {\n    BN.prototype.toBuffer = function toBuffer (endian, length) {\n      return this.toArrayLike(Buffer, endian, length);\n    };\n  }\n\n  BN.prototype.toArray = function toArray (endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  var allocate = function allocate (ArrayType, size) {\n    if (ArrayType.allocUnsafe) {\n      return ArrayType.allocUnsafe(size);\n    }\n    return new ArrayType(size);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n    this._strip();\n\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n\n    var res = allocate(ArrayType, reqLength);\n    var postfix = endian === 'le' ? 'LE' : 'BE';\n    this['_toArrayLike' + postfix](res, byteLength);\n    return res;\n  };\n\n  BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n    var position = 0;\n    var carry = 0;\n\n    for (var i = 0, shift = 0; i < this.length; i++) {\n      var word = (this.words[i] << shift) | carry;\n\n      res[position++] = word & 0xff;\n      if (position < res.length) {\n        res[position++] = (word >> 8) & 0xff;\n      }\n      if (position < res.length) {\n        res[position++] = (word >> 16) & 0xff;\n      }\n\n      if (shift === 6) {\n        if (position < res.length) {\n          res[position++] = (word >> 24) & 0xff;\n        }\n        carry = 0;\n        shift = 0;\n      } else {\n        carry = word >>> 24;\n        shift += 2;\n      }\n    }\n\n    if (position < res.length) {\n      res[position++] = carry;\n\n      while (position < res.length) {\n        res[position++] = 0;\n      }\n    }\n  };\n\n  BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n    var position = res.length - 1;\n    var carry = 0;\n\n    for (var i = 0, shift = 0; i < this.length; i++) {\n      var word = (this.words[i] << shift) | carry;\n\n      res[position--] = word & 0xff;\n      if (position >= 0) {\n        res[position--] = (word >> 8) & 0xff;\n      }\n      if (position >= 0) {\n        res[position--] = (word >> 16) & 0xff;\n      }\n\n      if (shift === 6) {\n        if (position >= 0) {\n          res[position--] = (word >> 24) & 0xff;\n        }\n        carry = 0;\n        shift = 0;\n      } else {\n        carry = word >>> 24;\n        shift += 2;\n      }\n    }\n\n    if (position >= 0) {\n      res[position--] = carry;\n\n      while (position >= 0) {\n        res[position--] = 0;\n      }\n    }\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits (w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits (w) {\n      var t = w;\n      var r = 0;\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits (w) {\n    // Short-cut\n    if (w === 0) return 26;\n\n    var t = w;\n    var r = 0;\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n    return r;\n  };\n\n  // Return number of used bits in a BN\n  BN.prototype.bitLength = function bitLength () {\n    var w = this.words[this.length - 1];\n    var hi = this._countBits(w);\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray (num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = (bit / 26) | 0;\n      var wbit = bit % 26;\n\n      w[bit] = (num.words[off] >>> wbit) & 0x01;\n    }\n\n    return w;\n  }\n\n  // Number of trailing zero bits\n  BN.prototype.zeroBits = function zeroBits () {\n    if (this.isZero()) return 0;\n\n    var r = 0;\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n      r += b;\n      if (b !== 26) break;\n    }\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength () {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos (width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos (width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg () {\n    return this.negative !== 0;\n  };\n\n  // Return negative clone of `this`\n  BN.prototype.neg = function neg () {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg () {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  };\n\n  // Or `num` with `this` in-place\n  BN.prototype.iuor = function iuor (num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.ior = function ior (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  };\n\n  // Or `num` with `this`\n  BN.prototype.or = function or (num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor (num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  };\n\n  // And `num` with `this` in-place\n  BN.prototype.iuand = function iuand (num) {\n    // b = min-length(num, this)\n    var b;\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n\n    return this._strip();\n  };\n\n  BN.prototype.iand = function iand (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  };\n\n  // And `num` with `this`\n  BN.prototype.and = function and (num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand (num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  };\n\n  // Xor `num` with `this` in-place\n  BN.prototype.iuxor = function iuxor (num) {\n    // a.length > b.length\n    var a;\n    var b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n\n    return this._strip();\n  };\n\n  BN.prototype.ixor = function ixor (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  };\n\n  // Xor `num` with `this`\n  BN.prototype.xor = function xor (num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor (num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  };\n\n  // Not ``this`` with ``width`` bitwidth\n  BN.prototype.inotn = function inotn (width) {\n    assert(typeof width === 'number' && width >= 0);\n\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26;\n\n    // Extend the buffer with leading zeroes\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    }\n\n    // Handle complete words\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    }\n\n    // Handle the residue\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n    }\n\n    // And remove leading zeroes\n    return this._strip();\n  };\n\n  BN.prototype.notn = function notn (width) {\n    return this.clone().inotn(width);\n  };\n\n  // Set `bit` of `this`\n  BN.prototype.setn = function setn (bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n\n    var off = (bit / 26) | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | (1 << wbit);\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this._strip();\n  };\n\n  // Add `num` to `this` in-place\n  BN.prototype.iadd = function iadd (num) {\n    var r;\n\n    // negative + positive\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign();\n\n    // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    }\n\n    // a.length > b.length\n    var a, b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++;\n    // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  };\n\n  // Add `num` to `this`\n  BN.prototype.add = function add (num) {\n    var res;\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n\n    return num.clone().iadd(this);\n  };\n\n  // Subtract `num` from `this` in-place\n  BN.prototype.isub = function isub (num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign();\n\n    // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    }\n\n    // At this point both numbers are positive\n    var cmp = this.cmp(num);\n\n    // Optimization - zeroify\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    }\n\n    // a > b\n    var a, b;\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    // Copy rest of the words\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this._strip();\n  };\n\n  // Subtract `num` from `this`\n  BN.prototype.sub = function sub (num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = (self.length + num.length) | 0;\n    out.length = len;\n    len = (len - 1) | 0;\n\n    // Peel one iteration (compiler can't do it, because of code complexity)\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n\n    var lo = r & 0x3ffffff;\n    var carry = (r / 0x4000000) | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = (k - j) | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += (r / 0x4000000) | 0;\n        rword = r & 0x3ffffff;\n      }\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out._strip();\n  }\n\n  // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n  var comb10MulTo = function comb10MulTo (self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = (mid + Math.imul(ah0, bl0)) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = (mid + Math.imul(ah1, bl0)) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = (lo + Math.imul(al0, bl1)) | 0;\n    mid = (mid + Math.imul(al0, bh1)) | 0;\n    mid = (mid + Math.imul(ah0, bl1)) | 0;\n    hi = (hi + Math.imul(ah0, bh1)) | 0;\n    var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = (mid + Math.imul(ah2, bl0)) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = (lo + Math.imul(al1, bl1)) | 0;\n    mid = (mid + Math.imul(al1, bh1)) | 0;\n    mid = (mid + Math.imul(ah1, bl1)) | 0;\n    hi = (hi + Math.imul(ah1, bh1)) | 0;\n    lo = (lo + Math.imul(al0, bl2)) | 0;\n    mid = (mid + Math.imul(al0, bh2)) | 0;\n    mid = (mid + Math.imul(ah0, bl2)) | 0;\n    hi = (hi + Math.imul(ah0, bh2)) | 0;\n    var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = (mid + Math.imul(ah3, bl0)) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = (lo + Math.imul(al2, bl1)) | 0;\n    mid = (mid + Math.imul(al2, bh1)) | 0;\n    mid = (mid + Math.imul(ah2, bl1)) | 0;\n    hi = (hi + Math.imul(ah2, bh1)) | 0;\n    lo = (lo + Math.imul(al1, bl2)) | 0;\n    mid = (mid + Math.imul(al1, bh2)) | 0;\n    mid = (mid + Math.imul(ah1, bl2)) | 0;\n    hi = (hi + Math.imul(ah1, bh2)) | 0;\n    lo = (lo + Math.imul(al0, bl3)) | 0;\n    mid = (mid + Math.imul(al0, bh3)) | 0;\n    mid = (mid + Math.imul(ah0, bl3)) | 0;\n    hi = (hi + Math.imul(ah0, bh3)) | 0;\n    var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = (mid + Math.imul(ah4, bl0)) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = (lo + Math.imul(al3, bl1)) | 0;\n    mid = (mid + Math.imul(al3, bh1)) | 0;\n    mid = (mid + Math.imul(ah3, bl1)) | 0;\n    hi = (hi + Math.imul(ah3, bh1)) | 0;\n    lo = (lo + Math.imul(al2, bl2)) | 0;\n    mid = (mid + Math.imul(al2, bh2)) | 0;\n    mid = (mid + Math.imul(ah2, bl2)) | 0;\n    hi = (hi + Math.imul(ah2, bh2)) | 0;\n    lo = (lo + Math.imul(al1, bl3)) | 0;\n    mid = (mid + Math.imul(al1, bh3)) | 0;\n    mid = (mid + Math.imul(ah1, bl3)) | 0;\n    hi = (hi + Math.imul(ah1, bh3)) | 0;\n    lo = (lo + Math.imul(al0, bl4)) | 0;\n    mid = (mid + Math.imul(al0, bh4)) | 0;\n    mid = (mid + Math.imul(ah0, bl4)) | 0;\n    hi = (hi + Math.imul(ah0, bh4)) | 0;\n    var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = (mid + Math.imul(ah5, bl0)) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = (lo + Math.imul(al4, bl1)) | 0;\n    mid = (mid + Math.imul(al4, bh1)) | 0;\n    mid = (mid + Math.imul(ah4, bl1)) | 0;\n    hi = (hi + Math.imul(ah4, bh1)) | 0;\n    lo = (lo + Math.imul(al3, bl2)) | 0;\n    mid = (mid + Math.imul(al3, bh2)) | 0;\n    mid = (mid + Math.imul(ah3, bl2)) | 0;\n    hi = (hi + Math.imul(ah3, bh2)) | 0;\n    lo = (lo + Math.imul(al2, bl3)) | 0;\n    mid = (mid + Math.imul(al2, bh3)) | 0;\n    mid = (mid + Math.imul(ah2, bl3)) | 0;\n    hi = (hi + Math.imul(ah2, bh3)) | 0;\n    lo = (lo + Math.imul(al1, bl4)) | 0;\n    mid = (mid + Math.imul(al1, bh4)) | 0;\n    mid = (mid + Math.imul(ah1, bl4)) | 0;\n    hi = (hi + Math.imul(ah1, bh4)) | 0;\n    lo = (lo + Math.imul(al0, bl5)) | 0;\n    mid = (mid + Math.imul(al0, bh5)) | 0;\n    mid = (mid + Math.imul(ah0, bl5)) | 0;\n    hi = (hi + Math.imul(ah0, bh5)) | 0;\n    var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = (mid + Math.imul(ah6, bl0)) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = (lo + Math.imul(al5, bl1)) | 0;\n    mid = (mid + Math.imul(al5, bh1)) | 0;\n    mid = (mid + Math.imul(ah5, bl1)) | 0;\n    hi = (hi + Math.imul(ah5, bh1)) | 0;\n    lo = (lo + Math.imul(al4, bl2)) | 0;\n    mid = (mid + Math.imul(al4, bh2)) | 0;\n    mid = (mid + Math.imul(ah4, bl2)) | 0;\n    hi = (hi + Math.imul(ah4, bh2)) | 0;\n    lo = (lo + Math.imul(al3, bl3)) | 0;\n    mid = (mid + Math.imul(al3, bh3)) | 0;\n    mid = (mid + Math.imul(ah3, bl3)) | 0;\n    hi = (hi + Math.imul(ah3, bh3)) | 0;\n    lo = (lo + Math.imul(al2, bl4)) | 0;\n    mid = (mid + Math.imul(al2, bh4)) | 0;\n    mid = (mid + Math.imul(ah2, bl4)) | 0;\n    hi = (hi + Math.imul(ah2, bh4)) | 0;\n    lo = (lo + Math.imul(al1, bl5)) | 0;\n    mid = (mid + Math.imul(al1, bh5)) | 0;\n    mid = (mid + Math.imul(ah1, bl5)) | 0;\n    hi = (hi + Math.imul(ah1, bh5)) | 0;\n    lo = (lo + Math.imul(al0, bl6)) | 0;\n    mid = (mid + Math.imul(al0, bh6)) | 0;\n    mid = (mid + Math.imul(ah0, bl6)) | 0;\n    hi = (hi + Math.imul(ah0, bh6)) | 0;\n    var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = (mid + Math.imul(ah7, bl0)) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = (lo + Math.imul(al6, bl1)) | 0;\n    mid = (mid + Math.imul(al6, bh1)) | 0;\n    mid = (mid + Math.imul(ah6, bl1)) | 0;\n    hi = (hi + Math.imul(ah6, bh1)) | 0;\n    lo = (lo + Math.imul(al5, bl2)) | 0;\n    mid = (mid + Math.imul(al5, bh2)) | 0;\n    mid = (mid + Math.imul(ah5, bl2)) | 0;\n    hi = (hi + Math.imul(ah5, bh2)) | 0;\n    lo = (lo + Math.imul(al4, bl3)) | 0;\n    mid = (mid + Math.imul(al4, bh3)) | 0;\n    mid = (mid + Math.imul(ah4, bl3)) | 0;\n    hi = (hi + Math.imul(ah4, bh3)) | 0;\n    lo = (lo + Math.imul(al3, bl4)) | 0;\n    mid = (mid + Math.imul(al3, bh4)) | 0;\n    mid = (mid + Math.imul(ah3, bl4)) | 0;\n    hi = (hi + Math.imul(ah3, bh4)) | 0;\n    lo = (lo + Math.imul(al2, bl5)) | 0;\n    mid = (mid + Math.imul(al2, bh5)) | 0;\n    mid = (mid + Math.imul(ah2, bl5)) | 0;\n    hi = (hi + Math.imul(ah2, bh5)) | 0;\n    lo = (lo + Math.imul(al1, bl6)) | 0;\n    mid = (mid + Math.imul(al1, bh6)) | 0;\n    mid = (mid + Math.imul(ah1, bl6)) | 0;\n    hi = (hi + Math.imul(ah1, bh6)) | 0;\n    lo = (lo + Math.imul(al0, bl7)) | 0;\n    mid = (mid + Math.imul(al0, bh7)) | 0;\n    mid = (mid + Math.imul(ah0, bl7)) | 0;\n    hi = (hi + Math.imul(ah0, bh7)) | 0;\n    var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = (mid + Math.imul(ah8, bl0)) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = (lo + Math.imul(al7, bl1)) | 0;\n    mid = (mid + Math.imul(al7, bh1)) | 0;\n    mid = (mid + Math.imul(ah7, bl1)) | 0;\n    hi = (hi + Math.imul(ah7, bh1)) | 0;\n    lo = (lo + Math.imul(al6, bl2)) | 0;\n    mid = (mid + Math.imul(al6, bh2)) | 0;\n    mid = (mid + Math.imul(ah6, bl2)) | 0;\n    hi = (hi + Math.imul(ah6, bh2)) | 0;\n    lo = (lo + Math.imul(al5, bl3)) | 0;\n    mid = (mid + Math.imul(al5, bh3)) | 0;\n    mid = (mid + Math.imul(ah5, bl3)) | 0;\n    hi = (hi + Math.imul(ah5, bh3)) | 0;\n    lo = (lo + Math.imul(al4, bl4)) | 0;\n    mid = (mid + Math.imul(al4, bh4)) | 0;\n    mid = (mid + Math.imul(ah4, bl4)) | 0;\n    hi = (hi + Math.imul(ah4, bh4)) | 0;\n    lo = (lo + Math.imul(al3, bl5)) | 0;\n    mid = (mid + Math.imul(al3, bh5)) | 0;\n    mid = (mid + Math.imul(ah3, bl5)) | 0;\n    hi = (hi + Math.imul(ah3, bh5)) | 0;\n    lo = (lo + Math.imul(al2, bl6)) | 0;\n    mid = (mid + Math.imul(al2, bh6)) | 0;\n    mid = (mid + Math.imul(ah2, bl6)) | 0;\n    hi = (hi + Math.imul(ah2, bh6)) | 0;\n    lo = (lo + Math.imul(al1, bl7)) | 0;\n    mid = (mid + Math.imul(al1, bh7)) | 0;\n    mid = (mid + Math.imul(ah1, bl7)) | 0;\n    hi = (hi + Math.imul(ah1, bh7)) | 0;\n    lo = (lo + Math.imul(al0, bl8)) | 0;\n    mid = (mid + Math.imul(al0, bh8)) | 0;\n    mid = (mid + Math.imul(ah0, bl8)) | 0;\n    hi = (hi + Math.imul(ah0, bh8)) | 0;\n    var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = (mid + Math.imul(ah9, bl0)) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = (lo + Math.imul(al8, bl1)) | 0;\n    mid = (mid + Math.imul(al8, bh1)) | 0;\n    mid = (mid + Math.imul(ah8, bl1)) | 0;\n    hi = (hi + Math.imul(ah8, bh1)) | 0;\n    lo = (lo + Math.imul(al7, bl2)) | 0;\n    mid = (mid + Math.imul(al7, bh2)) | 0;\n    mid = (mid + Math.imul(ah7, bl2)) | 0;\n    hi = (hi + Math.imul(ah7, bh2)) | 0;\n    lo = (lo + Math.imul(al6, bl3)) | 0;\n    mid = (mid + Math.imul(al6, bh3)) | 0;\n    mid = (mid + Math.imul(ah6, bl3)) | 0;\n    hi = (hi + Math.imul(ah6, bh3)) | 0;\n    lo = (lo + Math.imul(al5, bl4)) | 0;\n    mid = (mid + Math.imul(al5, bh4)) | 0;\n    mid = (mid + Math.imul(ah5, bl4)) | 0;\n    hi = (hi + Math.imul(ah5, bh4)) | 0;\n    lo = (lo + Math.imul(al4, bl5)) | 0;\n    mid = (mid + Math.imul(al4, bh5)) | 0;\n    mid = (mid + Math.imul(ah4, bl5)) | 0;\n    hi = (hi + Math.imul(ah4, bh5)) | 0;\n    lo = (lo + Math.imul(al3, bl6)) | 0;\n    mid = (mid + Math.imul(al3, bh6)) | 0;\n    mid = (mid + Math.imul(ah3, bl6)) | 0;\n    hi = (hi + Math.imul(ah3, bh6)) | 0;\n    lo = (lo + Math.imul(al2, bl7)) | 0;\n    mid = (mid + Math.imul(al2, bh7)) | 0;\n    mid = (mid + Math.imul(ah2, bl7)) | 0;\n    hi = (hi + Math.imul(ah2, bh7)) | 0;\n    lo = (lo + Math.imul(al1, bl8)) | 0;\n    mid = (mid + Math.imul(al1, bh8)) | 0;\n    mid = (mid + Math.imul(ah1, bl8)) | 0;\n    hi = (hi + Math.imul(ah1, bh8)) | 0;\n    lo = (lo + Math.imul(al0, bl9)) | 0;\n    mid = (mid + Math.imul(al0, bh9)) | 0;\n    mid = (mid + Math.imul(ah0, bl9)) | 0;\n    hi = (hi + Math.imul(ah0, bh9)) | 0;\n    var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = (mid + Math.imul(ah9, bl1)) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = (lo + Math.imul(al8, bl2)) | 0;\n    mid = (mid + Math.imul(al8, bh2)) | 0;\n    mid = (mid + Math.imul(ah8, bl2)) | 0;\n    hi = (hi + Math.imul(ah8, bh2)) | 0;\n    lo = (lo + Math.imul(al7, bl3)) | 0;\n    mid = (mid + Math.imul(al7, bh3)) | 0;\n    mid = (mid + Math.imul(ah7, bl3)) | 0;\n    hi = (hi + Math.imul(ah7, bh3)) | 0;\n    lo = (lo + Math.imul(al6, bl4)) | 0;\n    mid = (mid + Math.imul(al6, bh4)) | 0;\n    mid = (mid + Math.imul(ah6, bl4)) | 0;\n    hi = (hi + Math.imul(ah6, bh4)) | 0;\n    lo = (lo + Math.imul(al5, bl5)) | 0;\n    mid = (mid + Math.imul(al5, bh5)) | 0;\n    mid = (mid + Math.imul(ah5, bl5)) | 0;\n    hi = (hi + Math.imul(ah5, bh5)) | 0;\n    lo = (lo + Math.imul(al4, bl6)) | 0;\n    mid = (mid + Math.imul(al4, bh6)) | 0;\n    mid = (mid + Math.imul(ah4, bl6)) | 0;\n    hi = (hi + Math.imul(ah4, bh6)) | 0;\n    lo = (lo + Math.imul(al3, bl7)) | 0;\n    mid = (mid + Math.imul(al3, bh7)) | 0;\n    mid = (mid + Math.imul(ah3, bl7)) | 0;\n    hi = (hi + Math.imul(ah3, bh7)) | 0;\n    lo = (lo + Math.imul(al2, bl8)) | 0;\n    mid = (mid + Math.imul(al2, bh8)) | 0;\n    mid = (mid + Math.imul(ah2, bl8)) | 0;\n    hi = (hi + Math.imul(ah2, bh8)) | 0;\n    lo = (lo + Math.imul(al1, bl9)) | 0;\n    mid = (mid + Math.imul(al1, bh9)) | 0;\n    mid = (mid + Math.imul(ah1, bl9)) | 0;\n    hi = (hi + Math.imul(ah1, bh9)) | 0;\n    var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = (mid + Math.imul(ah9, bl2)) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = (lo + Math.imul(al8, bl3)) | 0;\n    mid = (mid + Math.imul(al8, bh3)) | 0;\n    mid = (mid + Math.imul(ah8, bl3)) | 0;\n    hi = (hi + Math.imul(ah8, bh3)) | 0;\n    lo = (lo + Math.imul(al7, bl4)) | 0;\n    mid = (mid + Math.imul(al7, bh4)) | 0;\n    mid = (mid + Math.imul(ah7, bl4)) | 0;\n    hi = (hi + Math.imul(ah7, bh4)) | 0;\n    lo = (lo + Math.imul(al6, bl5)) | 0;\n    mid = (mid + Math.imul(al6, bh5)) | 0;\n    mid = (mid + Math.imul(ah6, bl5)) | 0;\n    hi = (hi + Math.imul(ah6, bh5)) | 0;\n    lo = (lo + Math.imul(al5, bl6)) | 0;\n    mid = (mid + Math.imul(al5, bh6)) | 0;\n    mid = (mid + Math.imul(ah5, bl6)) | 0;\n    hi = (hi + Math.imul(ah5, bh6)) | 0;\n    lo = (lo + Math.imul(al4, bl7)) | 0;\n    mid = (mid + Math.imul(al4, bh7)) | 0;\n    mid = (mid + Math.imul(ah4, bl7)) | 0;\n    hi = (hi + Math.imul(ah4, bh7)) | 0;\n    lo = (lo + Math.imul(al3, bl8)) | 0;\n    mid = (mid + Math.imul(al3, bh8)) | 0;\n    mid = (mid + Math.imul(ah3, bl8)) | 0;\n    hi = (hi + Math.imul(ah3, bh8)) | 0;\n    lo = (lo + Math.imul(al2, bl9)) | 0;\n    mid = (mid + Math.imul(al2, bh9)) | 0;\n    mid = (mid + Math.imul(ah2, bl9)) | 0;\n    hi = (hi + Math.imul(ah2, bh9)) | 0;\n    var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = (mid + Math.imul(ah9, bl3)) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = (lo + Math.imul(al8, bl4)) | 0;\n    mid = (mid + Math.imul(al8, bh4)) | 0;\n    mid = (mid + Math.imul(ah8, bl4)) | 0;\n    hi = (hi + Math.imul(ah8, bh4)) | 0;\n    lo = (lo + Math.imul(al7, bl5)) | 0;\n    mid = (mid + Math.imul(al7, bh5)) | 0;\n    mid = (mid + Math.imul(ah7, bl5)) | 0;\n    hi = (hi + Math.imul(ah7, bh5)) | 0;\n    lo = (lo + Math.imul(al6, bl6)) | 0;\n    mid = (mid + Math.imul(al6, bh6)) | 0;\n    mid = (mid + Math.imul(ah6, bl6)) | 0;\n    hi = (hi + Math.imul(ah6, bh6)) | 0;\n    lo = (lo + Math.imul(al5, bl7)) | 0;\n    mid = (mid + Math.imul(al5, bh7)) | 0;\n    mid = (mid + Math.imul(ah5, bl7)) | 0;\n    hi = (hi + Math.imul(ah5, bh7)) | 0;\n    lo = (lo + Math.imul(al4, bl8)) | 0;\n    mid = (mid + Math.imul(al4, bh8)) | 0;\n    mid = (mid + Math.imul(ah4, bl8)) | 0;\n    hi = (hi + Math.imul(ah4, bh8)) | 0;\n    lo = (lo + Math.imul(al3, bl9)) | 0;\n    mid = (mid + Math.imul(al3, bh9)) | 0;\n    mid = (mid + Math.imul(ah3, bl9)) | 0;\n    hi = (hi + Math.imul(ah3, bh9)) | 0;\n    var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = (mid + Math.imul(ah9, bl4)) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = (lo + Math.imul(al8, bl5)) | 0;\n    mid = (mid + Math.imul(al8, bh5)) | 0;\n    mid = (mid + Math.imul(ah8, bl5)) | 0;\n    hi = (hi + Math.imul(ah8, bh5)) | 0;\n    lo = (lo + Math.imul(al7, bl6)) | 0;\n    mid = (mid + Math.imul(al7, bh6)) | 0;\n    mid = (mid + Math.imul(ah7, bl6)) | 0;\n    hi = (hi + Math.imul(ah7, bh6)) | 0;\n    lo = (lo + Math.imul(al6, bl7)) | 0;\n    mid = (mid + Math.imul(al6, bh7)) | 0;\n    mid = (mid + Math.imul(ah6, bl7)) | 0;\n    hi = (hi + Math.imul(ah6, bh7)) | 0;\n    lo = (lo + Math.imul(al5, bl8)) | 0;\n    mid = (mid + Math.imul(al5, bh8)) | 0;\n    mid = (mid + Math.imul(ah5, bl8)) | 0;\n    hi = (hi + Math.imul(ah5, bh8)) | 0;\n    lo = (lo + Math.imul(al4, bl9)) | 0;\n    mid = (mid + Math.imul(al4, bh9)) | 0;\n    mid = (mid + Math.imul(ah4, bl9)) | 0;\n    hi = (hi + Math.imul(ah4, bh9)) | 0;\n    var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = (mid + Math.imul(ah9, bl5)) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = (lo + Math.imul(al8, bl6)) | 0;\n    mid = (mid + Math.imul(al8, bh6)) | 0;\n    mid = (mid + Math.imul(ah8, bl6)) | 0;\n    hi = (hi + Math.imul(ah8, bh6)) | 0;\n    lo = (lo + Math.imul(al7, bl7)) | 0;\n    mid = (mid + Math.imul(al7, bh7)) | 0;\n    mid = (mid + Math.imul(ah7, bl7)) | 0;\n    hi = (hi + Math.imul(ah7, bh7)) | 0;\n    lo = (lo + Math.imul(al6, bl8)) | 0;\n    mid = (mid + Math.imul(al6, bh8)) | 0;\n    mid = (mid + Math.imul(ah6, bl8)) | 0;\n    hi = (hi + Math.imul(ah6, bh8)) | 0;\n    lo = (lo + Math.imul(al5, bl9)) | 0;\n    mid = (mid + Math.imul(al5, bh9)) | 0;\n    mid = (mid + Math.imul(ah5, bl9)) | 0;\n    hi = (hi + Math.imul(ah5, bh9)) | 0;\n    var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = (mid + Math.imul(ah9, bl6)) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = (lo + Math.imul(al8, bl7)) | 0;\n    mid = (mid + Math.imul(al8, bh7)) | 0;\n    mid = (mid + Math.imul(ah8, bl7)) | 0;\n    hi = (hi + Math.imul(ah8, bh7)) | 0;\n    lo = (lo + Math.imul(al7, bl8)) | 0;\n    mid = (mid + Math.imul(al7, bh8)) | 0;\n    mid = (mid + Math.imul(ah7, bl8)) | 0;\n    hi = (hi + Math.imul(ah7, bh8)) | 0;\n    lo = (lo + Math.imul(al6, bl9)) | 0;\n    mid = (mid + Math.imul(al6, bh9)) | 0;\n    mid = (mid + Math.imul(ah6, bl9)) | 0;\n    hi = (hi + Math.imul(ah6, bh9)) | 0;\n    var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = (mid + Math.imul(ah9, bl7)) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = (lo + Math.imul(al8, bl8)) | 0;\n    mid = (mid + Math.imul(al8, bh8)) | 0;\n    mid = (mid + Math.imul(ah8, bl8)) | 0;\n    hi = (hi + Math.imul(ah8, bh8)) | 0;\n    lo = (lo + Math.imul(al7, bl9)) | 0;\n    mid = (mid + Math.imul(al7, bh9)) | 0;\n    mid = (mid + Math.imul(ah7, bl9)) | 0;\n    hi = (hi + Math.imul(ah7, bh9)) | 0;\n    var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = (mid + Math.imul(ah9, bl8)) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = (lo + Math.imul(al8, bl9)) | 0;\n    mid = (mid + Math.imul(al8, bh9)) | 0;\n    mid = (mid + Math.imul(ah8, bl9)) | 0;\n    hi = (hi + Math.imul(ah8, bh9)) | 0;\n    var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = (mid + Math.imul(ah9, bl9)) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n    return out;\n  };\n\n  // Polyfill comb\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n\n    var carry = 0;\n    var hncarry = 0;\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n\n        var lo = r & 0x3ffffff;\n        ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n        lo = (lo + rword) | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = (ncarry + (lo >>> 26)) | 0;\n\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out._strip();\n  }\n\n  function jumboMulTo (self, num, out) {\n    // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n    // var fftm = new FFTM();\n    // return fftm.mulp(self, num, out);\n    return bigMulTo(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo (num, out) {\n    var res;\n    var len = this.length + num.length;\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  };\n\n  // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n  function FFTM (x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT (N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  };\n\n  // Returns binary-reversed representation of `x`\n  FFTM.prototype.revBin = function revBin (x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n\n    var rb = 0;\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << (l - i - 1);\n      x >>= 1;\n    }\n\n    return rb;\n  };\n\n  // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n  FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n\n          var rx = rtwdf_ * ro - itwdf_ * io;\n\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n\n          /* jshint maxdepth : false */\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n\n      t = iws[i];\n\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n    var carry = 0;\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n        Math.round(ws[2 * i] / N) +\n        carry;\n\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n    var carry = 0;\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n\n      rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n    }\n\n    // Pad with zeroes\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub (N) {\n    var ph = new Array(N);\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp (x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n\n    var rmws = out.words;\n    rmws.length = N;\n\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out._strip();\n  };\n\n  // Multiply `this` by `num`\n  BN.prototype.mul = function mul (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  };\n\n  // Multiply employing FFT\n  BN.prototype.mulf = function mulf (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  };\n\n  // In-place Multiplication\n  BN.prototype.imul = function imul (num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln (num) {\n    var isNegNum = num < 0;\n    if (isNegNum) num = -num;\n\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n\n    // Carry\n    var carry = 0;\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += (w / 0x4000000) | 0;\n      // NOTE: lo is 27bit maximum\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return isNegNum ? this.ineg() : this;\n  };\n\n  BN.prototype.muln = function muln (num) {\n    return this.clone().imuln(num);\n  };\n\n  // `this` * `this`\n  BN.prototype.sqr = function sqr () {\n    return this.mul(this);\n  };\n\n  // `this` * `this` in-place\n  BN.prototype.isqr = function isqr () {\n    return this.imul(this.clone());\n  };\n\n  // Math.pow(`this`, `num`)\n  BN.prototype.pow = function pow (num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1);\n\n    // Skip leading zeroes\n    var res = this;\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  };\n\n  // Shift-left in-place\n  BN.prototype.iushln = function iushln (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = ((this.words[i] | 0) - newCarry) << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> (26 - r);\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.ishln = function ishln (bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  };\n\n  // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n  BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n    if (hint) {\n      h = (hint - (hint % 26)) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n    var maskedWords = extended;\n\n    h -= s;\n    h = Math.max(0, h);\n\n    // Extended mode, copy masked part\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {\n      // No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = (carry << (26 - r)) | (word >>> r);\n      carry = word & mask;\n    }\n\n    // Push carried bits as a mask\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  };\n\n  // Shift-left\n  BN.prototype.shln = function shln (bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln (bits) {\n    return this.clone().iushln(bits);\n  };\n\n  // Shift-right\n  BN.prototype.shrn = function shrn (bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn (bits) {\n    return this.clone().iushrn(bits);\n  };\n\n  // Test if n bit is set\n  BN.prototype.testn = function testn (bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) return false;\n\n    // Check bit and return\n    var w = this.words[s];\n\n    return !!(w & q);\n  };\n\n  // Return only lowers bits of number (in-place)\n  BN.prototype.imaskn = function imaskn (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this._strip();\n  };\n\n  // Return only lowers bits of number\n  BN.prototype.maskn = function maskn (bits) {\n    return this.clone().imaskn(bits);\n  };\n\n  // Add plain number `num` to `this`\n  BN.prototype.iaddn = function iaddn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num);\n\n    // Possible sign change\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) <= num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    // Add without checks\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn (num) {\n    this.words[0] += num;\n\n    // Carry\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n    this.length = Math.max(this.length, i + 1);\n\n    return this;\n  };\n\n  // Subtract plain number `num` from `this`\n  BN.prototype.isubn = function isubn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.addn = function addn (num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn (num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs () {\n    this.negative = 0;\n\n    return this;\n  };\n\n  BN.prototype.abs = function abs () {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - ((right / 0x4000000) | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this._strip();\n\n    // Subtraction overflow\n    assert(carry === -1);\n    carry = 0;\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n    this.negative = 1;\n\n    return this._strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv (num, mode) {\n    var shift = this.length - num.length;\n\n    var a = this.clone();\n    var b = num;\n\n    // Normalize\n    var bhi = b.words[b.length - 1] | 0;\n    var bhiBits = this._countBits(bhi);\n    shift = 26 - bhiBits;\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    }\n\n    // Initialize quotient\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n    if (diff.negative === 0) {\n      a = diff;\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n        (a.words[b.length + j - 1] | 0);\n\n      // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n      qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n        a._ishlnsubmul(b, 1, j);\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n    if (q) {\n      q._strip();\n    }\n    a._strip();\n\n    // Denormalize\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  };\n\n  // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n  BN.prototype.divmod = function divmod (num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    }\n\n    // Both numbers are positive at this point\n\n    // Strip both numbers to approximate shift value\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    }\n\n    // Very short reduction\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modrn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modrn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  };\n\n  // Find `this` / `num`\n  BN.prototype.div = function div (num) {\n    return this.divmod(num, 'div', false).div;\n  };\n\n  // Find `this` % `num`\n  BN.prototype.mod = function mod (num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod (num) {\n    return this.divmod(num, 'mod', true).mod;\n  };\n\n  // Find Round(`this` / `num`)\n  BN.prototype.divRound = function divRound (num) {\n    var dm = this.divmod(num);\n\n    // Fast case - exact division\n    if (dm.mod.isZero()) return dm.div;\n\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half);\n\n    // Round down\n    if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n    // Round up\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modrn = function modrn (num) {\n    var isNegNum = num < 0;\n    if (isNegNum) num = -num;\n\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n\n    var acc = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return isNegNum ? -acc : acc;\n  };\n\n  // WARNING: DEPRECATED\n  BN.prototype.modn = function modn (num) {\n    return this.modrn(num);\n  };\n\n  // In-place division by number\n  BN.prototype.idivn = function idivn (num) {\n    var isNegNum = num < 0;\n    if (isNegNum) num = -num;\n\n    assert(num <= 0x3ffffff);\n\n    var carry = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = (w / num) | 0;\n      carry = w % num;\n    }\n\n    this._strip();\n    return isNegNum ? this.ineg() : this;\n  };\n\n  BN.prototype.divn = function divn (num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    }\n\n    // A * x + B * y = x\n    var A = new BN(1);\n    var B = new BN(0);\n\n    // C * x + D * y = y\n    var C = new BN(0);\n    var D = new BN(1);\n\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        x.iushrn(i);\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        y.iushrn(j);\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  };\n\n  // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n  BN.prototype._invmp = function _invmp (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        a.iushrn(i);\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        b.iushrn(j);\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd (num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0;\n\n    // Remove common factor of two\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  };\n\n  // Invert number in the field F(num)\n  BN.prototype.invm = function invm (num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven () {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd () {\n    return (this.words[0] & 1) === 1;\n  };\n\n  // And first word and num\n  BN.prototype.andln = function andln (num) {\n    return this.words[0] & num;\n  };\n\n  // Increment at the bit position in-line\n  BN.prototype.bincn = function bincn (bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) {\n      this._expand(s + 1);\n      this.words[s] |= q;\n      return this;\n    }\n\n    // Add bit and propagate, if needed\n    var carry = q;\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero () {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn (num) {\n    var negative = num < 0;\n\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n\n    this._strip();\n\n    var res;\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n  BN.prototype.cmp = function cmp (num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Unsigned comparison\n  BN.prototype.ucmp = function ucmp (num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n\n    var res = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n\n      if (a === b) continue;\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n      break;\n    }\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn (num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt (num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten (num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte (num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn (num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt (num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten (num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte (num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn (num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq (num) {\n    return this.cmp(num) === 0;\n  };\n\n  //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n  BN.red = function red (num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed () {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed (ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd (num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd (num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub (num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub (num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl (num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr () {\n    assert(this.red, 'redSqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr () {\n    assert(this.red, 'redISqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.isqr(this);\n  };\n\n  // Square root over p\n  BN.prototype.redSqrt = function redSqrt () {\n    assert(this.red, 'redSqrt works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm () {\n    assert(this.red, 'redInvm works only with red numbers');\n    this.red._verify1(this);\n    return this.red.invm(this);\n  };\n\n  // Return negative clone of `this` % `red modulo`\n  BN.prototype.redNeg = function redNeg () {\n    assert(this.red, 'redNeg works only with red numbers');\n    this.red._verify1(this);\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow (num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n    this.red._verify1(this);\n    return this.red.pow(this, num);\n  };\n\n  // Prime numbers with efficient reduction\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  };\n\n  // Pseudo-Mersenne prime\n  function MPrime (name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp () {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce (num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is a BN v4 instance\n        r.strip();\n      } else {\n        // r is a BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split (input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK (num) {\n    return num.imul(this.k);\n  };\n\n  function K256 () {\n    MPrime.call(\n      this,\n      'k256',\n      'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split (input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n\n    var outLen = Math.min(input.length, 9);\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    }\n\n    // Shift by 9 limbs\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n      prev = next;\n    }\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK (num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2;\n\n    // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n    var lo = 0;\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + ((lo / 0x4000000) | 0);\n    }\n\n    // Fast length reduction\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n    return num;\n  };\n\n  function P224 () {\n    MPrime.call(\n      this,\n      'p224',\n      'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n  inherits(P224, MPrime);\n\n  function P192 () {\n    MPrime.call(\n      this,\n      'p192',\n      'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n  inherits(P192, MPrime);\n\n  function P25519 () {\n    // 2 ^ 255 - 19\n    MPrime.call(\n      this,\n      '25519',\n      '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK (num) {\n    // K = 0x13\n    var carry = 0;\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n\n      num.words[i] = lo;\n      carry = hi;\n    }\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n    return num;\n  };\n\n  // Exported mostly for testing purposes, use plain name instead\n  BN._prime = function prime (name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n\n    var prime;\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n    primes[name] = prime;\n\n    return prime;\n  };\n\n  //\n  // Base reduction engine\n  //\n  function Red (m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1 (a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2 (a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red,\n      'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod (a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n    move(a, a.umod(this.m)._forceRed(this));\n    return a;\n  };\n\n  Red.prototype.neg = function neg (a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add (a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd (a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.sub = function sub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.shl = function shl (a, num) {\n    this._verify1(a);\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr (a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr (a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt (a) {\n    if (a.isZero()) return a.clone();\n\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1);\n\n    // Fast case\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    }\n\n    // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n    var q = this.m.subn(1);\n    var s = 0;\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n    assert(!q.isZero());\n\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg();\n\n    // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm (a) {\n    var inv = a._invmp(this.m);\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow (a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = (word >> j) & 1;\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo (num) {\n    var r = num.umod(this.m);\n\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom (num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  };\n\n  //\n  // Montgomery method engine\n  //\n\n  BN.mont = function mont (num) {\n    return new Mont(num);\n  };\n\n  function Mont (m) {\n    Red.call(this, m);\n\n    this.shift = this.m.bitLength();\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - (this.shift % 26);\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo (num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom (num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul (a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul (a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm (a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})(typeof module === 'undefined' || module, this);\n","/*!\n  Copyright (c) 2018 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://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) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\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","// nb. This is for IE10 and lower _only_.\nvar supportCustomEvent = window.CustomEvent;\nif (!supportCustomEvent || typeof supportCustomEvent === 'object') {\n  supportCustomEvent = function CustomEvent(event, x) {\n    x = x || {};\n    var ev = document.createEvent('CustomEvent');\n    ev.initCustomEvent(event, !!x.bubbles, !!x.cancelable, x.detail || null);\n    return ev;\n  };\n  supportCustomEvent.prototype = window.Event.prototype;\n}\n\n/**\n * Dispatches the passed event to both an \"on<type>\" handler as well as via the\n * normal dispatch operation. Does not bubble.\n *\n * @param {!EventTarget} target\n * @param {!Event} event\n * @return {boolean}\n */\nfunction safeDispatchEvent(target, event) {\n  var check = 'on' + event.type.toLowerCase();\n  if (typeof target[check] === 'function') {\n    target[check](event);\n  }\n  return target.dispatchEvent(event);\n}\n\n/**\n * @param {Element} el to check for stacking context\n * @return {boolean} whether this el or its parents creates a stacking context\n */\nfunction createsStackingContext(el) {\n  while (el && el !== document.body) {\n    var s = window.getComputedStyle(el);\n    var invalid = function(k, ok) {\n      return !(s[k] === undefined || s[k] === ok);\n    };\n\n    if (s.opacity < 1 ||\n        invalid('zIndex', 'auto') ||\n        invalid('transform', 'none') ||\n        invalid('mixBlendMode', 'normal') ||\n        invalid('filter', 'none') ||\n        invalid('perspective', 'none') ||\n        s['isolation'] === 'isolate' ||\n        s.position === 'fixed' ||\n        s.webkitOverflowScrolling === 'touch') {\n      return true;\n    }\n    el = el.parentElement;\n  }\n  return false;\n}\n\n/**\n * Finds the nearest <dialog> from the passed element.\n *\n * @param {Element} el to search from\n * @return {HTMLDialogElement} dialog found\n */\nfunction findNearestDialog(el) {\n  while (el) {\n    if (el.localName === 'dialog') {\n      return /** @type {HTMLDialogElement} */ (el);\n    }\n    if (el.parentElement) {\n      el = el.parentElement;\n    } else if (el.parentNode) {\n      el = el.parentNode.host;\n    } else {\n      el = null;\n    }\n  }\n  return null;\n}\n\n/**\n * Blur the specified element, as long as it's not the HTML body element.\n * This works around an IE9/10 bug - blurring the body causes Windows to\n * blur the whole application.\n *\n * @param {Element} el to blur\n */\nfunction safeBlur(el) {\n  // Find the actual focused element when the active element is inside a shadow root\n  while (el && el.shadowRoot && el.shadowRoot.activeElement) {\n    el = el.shadowRoot.activeElement;\n  }\n\n  if (el && el.blur && el !== document.body) {\n    el.blur();\n  }\n}\n\n/**\n * @param {!NodeList} nodeList to search\n * @param {Node} node to find\n * @return {boolean} whether node is inside nodeList\n */\nfunction inNodeList(nodeList, node) {\n  for (var i = 0; i < nodeList.length; ++i) {\n    if (nodeList[i] === node) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * @param {HTMLFormElement} el to check\n * @return {boolean} whether this form has method=\"dialog\"\n */\nfunction isFormMethodDialog(el) {\n  if (!el || !el.hasAttribute('method')) {\n    return false;\n  }\n  return el.getAttribute('method').toLowerCase() === 'dialog';\n}\n\n/**\n * @param {!DocumentFragment|!Element} hostElement\n * @return {?Element}\n */\nfunction findFocusableElementWithin(hostElement) {\n  // Note that this is 'any focusable area'. This list is probably not exhaustive, but the\n  // alternative involves stepping through and trying to focus everything.\n  var opts = ['button', 'input', 'keygen', 'select', 'textarea'];\n  var query = opts.map(function(el) {\n    return el + ':not([disabled])';\n  });\n  // TODO(samthor): tabindex values that are not numeric are not focusable.\n  query.push('[tabindex]:not([disabled]):not([tabindex=\"\"])');  // tabindex != \"\", not disabled\n  var target = hostElement.querySelector(query.join(', '));\n\n  if (!target && 'attachShadow' in Element.prototype) {\n    // If we haven't found a focusable target, see if the host element contains an element\n    // which has a shadowRoot.\n    // Recursively search for the first focusable item in shadow roots.\n    var elems = hostElement.querySelectorAll('*');\n    for (var i = 0; i < elems.length; i++) {\n      if (elems[i].tagName && elems[i].shadowRoot) {\n        target = findFocusableElementWithin(elems[i].shadowRoot);\n        if (target) {\n          break;\n        }\n      }\n    }\n  }\n  return target;\n}\n\n/**\n * Determines if an element is attached to the DOM.\n * @param {Element} element to check\n * @return {boolean} whether the element is in DOM\n */\nfunction isConnected(element) {\n  return element.isConnected || document.body.contains(element);\n}\n\n/**\n * @param {!Event} event\n * @return {?Element}\n */\nfunction findFormSubmitter(event) {\n  if (event.submitter) {\n    return event.submitter;\n  }\n\n  var form = event.target;\n  if (!(form instanceof HTMLFormElement)) {\n    return null;\n  }\n\n  var submitter = dialogPolyfill.formSubmitter;\n  if (!submitter) {\n    var target = event.target;\n    var root = ('getRootNode' in target && target.getRootNode() || document);\n    submitter = root.activeElement;\n  }\n\n  if (!submitter || submitter.form !== form) {\n    return null;\n  }\n  return submitter;\n}\n\n/**\n * @param {!Event} event\n */\nfunction maybeHandleSubmit(event) {\n  if (event.defaultPrevented) {\n    return;\n  }\n  var form = /** @type {!HTMLFormElement} */ (event.target);\n\n  // We'd have a value if we clicked on an imagemap.\n  var value = dialogPolyfill.imagemapUseValue;\n  var submitter = findFormSubmitter(event);\n  if (value === null && submitter) {\n    value = submitter.value;\n  }\n\n  // There should always be a dialog as this handler is added specifically on them, but check just\n  // in case.\n  var dialog = findNearestDialog(form);\n  if (!dialog) {\n    return;\n  }\n\n  // Prefer formmethod on the button.\n  var formmethod = submitter && submitter.getAttribute('formmethod') || form.getAttribute('method');\n  if (formmethod !== 'dialog') {\n    return;\n  }\n  event.preventDefault();\n\n  if (value != null) {\n    // nb. we explicitly check against null/undefined\n    dialog.close(value);\n  } else {\n    dialog.close();\n  }\n}\n\n/**\n * @param {!HTMLDialogElement} dialog to upgrade\n * @constructor\n */\nfunction dialogPolyfillInfo(dialog) {\n  this.dialog_ = dialog;\n  this.replacedStyleTop_ = false;\n  this.openAsModal_ = false;\n\n  // Set a11y role. Browsers that support dialog implicitly know this already.\n  if (!dialog.hasAttribute('role')) {\n    dialog.setAttribute('role', 'dialog');\n  }\n\n  dialog.show = this.show.bind(this);\n  dialog.showModal = this.showModal.bind(this);\n  dialog.close = this.close.bind(this);\n\n  dialog.addEventListener('submit', maybeHandleSubmit, false);\n\n  if (!('returnValue' in dialog)) {\n    dialog.returnValue = '';\n  }\n\n  if ('MutationObserver' in window) {\n    var mo = new MutationObserver(this.maybeHideModal.bind(this));\n    mo.observe(dialog, {attributes: true, attributeFilter: ['open']});\n  } else {\n    // IE10 and below support. Note that DOMNodeRemoved etc fire _before_ removal. They also\n    // seem to fire even if the element was removed as part of a parent removal. Use the removed\n    // events to force downgrade (useful if removed/immediately added).\n    var removed = false;\n    var cb = function() {\n      removed ? this.downgradeModal() : this.maybeHideModal();\n      removed = false;\n    }.bind(this);\n    var timeout;\n    var delayModel = function(ev) {\n      if (ev.target !== dialog) { return; }  // not for a child element\n      var cand = 'DOMNodeRemoved';\n      removed |= (ev.type.substr(0, cand.length) === cand);\n      window.clearTimeout(timeout);\n      timeout = window.setTimeout(cb, 0);\n    };\n    ['DOMAttrModified', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument'].forEach(function(name) {\n      dialog.addEventListener(name, delayModel);\n    });\n  }\n  // Note that the DOM is observed inside DialogManager while any dialog\n  // is being displayed as a modal, to catch modal removal from the DOM.\n\n  Object.defineProperty(dialog, 'open', {\n    set: this.setOpen.bind(this),\n    get: dialog.hasAttribute.bind(dialog, 'open')\n  });\n\n  this.backdrop_ = document.createElement('div');\n  this.backdrop_.className = 'backdrop';\n  this.backdrop_.addEventListener('mouseup'  , this.backdropMouseEvent_.bind(this));\n  this.backdrop_.addEventListener('mousedown', this.backdropMouseEvent_.bind(this));\n  this.backdrop_.addEventListener('click'    , this.backdropMouseEvent_.bind(this));\n}\n\ndialogPolyfillInfo.prototype = /** @type {HTMLDialogElement.prototype} */ ({\n\n  get dialog() {\n    return this.dialog_;\n  },\n\n  /**\n   * Maybe remove this dialog from the modal top layer. This is called when\n   * a modal dialog may no longer be tenable, e.g., when the dialog is no\n   * longer open or is no longer part of the DOM.\n   */\n  maybeHideModal: function() {\n    if (this.dialog_.hasAttribute('open') && isConnected(this.dialog_)) { return; }\n    this.downgradeModal();\n  },\n\n  /**\n   * Remove this dialog from the modal top layer, leaving it as a non-modal.\n   */\n  downgradeModal: function() {\n    if (!this.openAsModal_) { return; }\n    this.openAsModal_ = false;\n    this.dialog_.style.zIndex = '';\n\n    // This won't match the native <dialog> exactly because if the user set top on a centered\n    // polyfill dialog, that top gets thrown away when the dialog is closed. Not sure it's\n    // possible to polyfill this perfectly.\n    if (this.replacedStyleTop_) {\n      this.dialog_.style.top = '';\n      this.replacedStyleTop_ = false;\n    }\n\n    // Clear the backdrop and remove from the manager.\n    this.backdrop_.parentNode && this.backdrop_.parentNode.removeChild(this.backdrop_);\n    dialogPolyfill.dm.removeDialog(this);\n  },\n\n  /**\n   * @param {boolean} value whether to open or close this dialog\n   */\n  setOpen: function(value) {\n    if (value) {\n      this.dialog_.hasAttribute('open') || this.dialog_.setAttribute('open', '');\n    } else {\n      this.dialog_.removeAttribute('open');\n      this.maybeHideModal();  // nb. redundant with MutationObserver\n    }\n  },\n\n  /**\n   * Handles mouse events ('mouseup', 'mousedown', 'click') on the fake .backdrop element, redirecting them as if\n   * they were on the dialog itself.\n   *\n   * @param {!Event} e to redirect\n   */\n  backdropMouseEvent_: function(e) {\n    if (!this.dialog_.hasAttribute('tabindex')) {\n      // Clicking on the backdrop should move the implicit cursor, even if dialog cannot be\n      // focused. Create a fake thing to focus on. If the backdrop was _before_ the dialog, this\n      // would not be needed - clicks would move the implicit cursor there.\n      var fake = document.createElement('div');\n      this.dialog_.insertBefore(fake, this.dialog_.firstChild);\n      fake.tabIndex = -1;\n      fake.focus();\n      this.dialog_.removeChild(fake);\n    } else {\n      this.dialog_.focus();\n    }\n\n    var redirectedEvent = document.createEvent('MouseEvents');\n    redirectedEvent.initMouseEvent(e.type, e.bubbles, e.cancelable, window,\n        e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey,\n        e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);\n    this.dialog_.dispatchEvent(redirectedEvent);\n    e.stopPropagation();\n  },\n\n  /**\n   * Focuses on the first focusable element within the dialog. This will always blur the current\n   * focus, even if nothing within the dialog is found.\n   */\n  focus_: function() {\n    // Find element with `autofocus` attribute, or fall back to the first form/tabindex control.\n    var target = this.dialog_.querySelector('[autofocus]:not([disabled])');\n    if (!target && this.dialog_.tabIndex >= 0) {\n      target = this.dialog_;\n    }\n    if (!target) {\n      target = findFocusableElementWithin(this.dialog_);\n    }\n    safeBlur(document.activeElement);\n    target && target.focus();\n  },\n\n  /**\n   * Sets the zIndex for the backdrop and dialog.\n   *\n   * @param {number} dialogZ\n   * @param {number} backdropZ\n   */\n  updateZIndex: function(dialogZ, backdropZ) {\n    if (dialogZ < backdropZ) {\n      throw new Error('dialogZ should never be < backdropZ');\n    }\n    this.dialog_.style.zIndex = dialogZ;\n    this.backdrop_.style.zIndex = backdropZ;\n  },\n\n  /**\n   * Shows the dialog. If the dialog is already open, this does nothing.\n   */\n  show: function() {\n    if (!this.dialog_.open) {\n      this.setOpen(true);\n      this.focus_();\n    }\n  },\n\n  /**\n   * Show this dialog modally.\n   */\n  showModal: function() {\n    if (this.dialog_.hasAttribute('open')) {\n      throw new Error('Failed to execute \\'showModal\\' on dialog: The element is already open, and therefore cannot be opened modally.');\n    }\n    if (!isConnected(this.dialog_)) {\n      throw new Error('Failed to execute \\'showModal\\' on dialog: The element is not in a Document.');\n    }\n    if (!dialogPolyfill.dm.pushDialog(this)) {\n      throw new Error('Failed to execute \\'showModal\\' on dialog: There are too many open modal dialogs.');\n    }\n\n    if (createsStackingContext(this.dialog_.parentElement)) {\n      console.warn('A dialog is being shown inside a stacking context. ' +\n          'This may cause it to be unusable. For more information, see this link: ' +\n          'https://github.com/GoogleChrome/dialog-polyfill/#stacking-context');\n    }\n\n    this.setOpen(true);\n    this.openAsModal_ = true;\n\n    // Optionally center vertically, relative to the current viewport.\n    if (dialogPolyfill.needsCentering(this.dialog_)) {\n      dialogPolyfill.reposition(this.dialog_);\n      this.replacedStyleTop_ = true;\n    } else {\n      this.replacedStyleTop_ = false;\n    }\n\n    // Insert backdrop.\n    this.dialog_.parentNode.insertBefore(this.backdrop_, this.dialog_.nextSibling);\n\n    // Focus on whatever inside the dialog.\n    this.focus_();\n  },\n\n  /**\n   * Closes this HTMLDialogElement. This is optional vs clearing the open\n   * attribute, however this fires a 'close' event.\n   *\n   * @param {string=} opt_returnValue to use as the returnValue\n   */\n  close: function(opt_returnValue) {\n    if (!this.dialog_.hasAttribute('open')) {\n      throw new Error('Failed to execute \\'close\\' on dialog: The element does not have an \\'open\\' attribute, and therefore cannot be closed.');\n    }\n    this.setOpen(false);\n\n    // Leave returnValue untouched in case it was set directly on the element\n    if (opt_returnValue !== undefined) {\n      this.dialog_.returnValue = opt_returnValue;\n    }\n\n    // Triggering \"close\" event for any attached listeners on the <dialog>.\n    var closeEvent = new supportCustomEvent('close', {\n      bubbles: false,\n      cancelable: false\n    });\n    safeDispatchEvent(this.dialog_, closeEvent);\n  }\n\n});\n\nvar dialogPolyfill = {};\n\ndialogPolyfill.reposition = function(element) {\n  var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;\n  var topValue = scrollTop + (window.innerHeight - element.offsetHeight) / 2;\n  element.style.top = Math.max(scrollTop, topValue) + 'px';\n};\n\ndialogPolyfill.isInlinePositionSetByStylesheet = function(element) {\n  for (var i = 0; i < document.styleSheets.length; ++i) {\n    var styleSheet = document.styleSheets[i];\n    var cssRules = null;\n    // Some browsers throw on cssRules.\n    try {\n      cssRules = styleSheet.cssRules;\n    } catch (e) {}\n    if (!cssRules) { continue; }\n    for (var j = 0; j < cssRules.length; ++j) {\n      var rule = cssRules[j];\n      var selectedNodes = null;\n      // Ignore errors on invalid selector texts.\n      try {\n        selectedNodes = document.querySelectorAll(rule.selectorText);\n      } catch(e) {}\n      if (!selectedNodes || !inNodeList(selectedNodes, element)) {\n        continue;\n      }\n      var cssTop = rule.style.getPropertyValue('top');\n      var cssBottom = rule.style.getPropertyValue('bottom');\n      if ((cssTop && cssTop !== 'auto') || (cssBottom && cssBottom !== 'auto')) {\n        return true;\n      }\n    }\n  }\n  return false;\n};\n\ndialogPolyfill.needsCentering = function(dialog) {\n  var computedStyle = window.getComputedStyle(dialog);\n  if (computedStyle.position !== 'absolute') {\n    return false;\n  }\n\n  // We must determine whether the top/bottom specified value is non-auto.  In\n  // WebKit/Blink, checking computedStyle.top == 'auto' is sufficient, but\n  // Firefox returns the used value. So we do this crazy thing instead: check\n  // the inline style and then go through CSS rules.\n  if ((dialog.style.top !== 'auto' && dialog.style.top !== '') ||\n      (dialog.style.bottom !== 'auto' && dialog.style.bottom !== '')) {\n    return false;\n  }\n  return !dialogPolyfill.isInlinePositionSetByStylesheet(dialog);\n};\n\n/**\n * @param {!Element} element to force upgrade\n */\ndialogPolyfill.forceRegisterDialog = function(element) {\n  if (window.HTMLDialogElement || element.showModal) {\n    console.warn('This browser already supports <dialog>, the polyfill ' +\n        'may not work correctly', element);\n  }\n  if (element.localName !== 'dialog') {\n    throw new Error('Failed to register dialog: The element is not a dialog.');\n  }\n  new dialogPolyfillInfo(/** @type {!HTMLDialogElement} */ (element));\n};\n\n/**\n * @param {!Element} element to upgrade, if necessary\n */\ndialogPolyfill.registerDialog = function(element) {\n  if (!element.showModal) {\n    dialogPolyfill.forceRegisterDialog(element);\n  }\n};\n\n/**\n * @constructor\n */\ndialogPolyfill.DialogManager = function() {\n  /** @type {!Array<!dialogPolyfillInfo>} */\n  this.pendingDialogStack = [];\n\n  var checkDOM = this.checkDOM_.bind(this);\n\n  // The overlay is used to simulate how a modal dialog blocks the document.\n  // The blocking dialog is positioned on top of the overlay, and the rest of\n  // the dialogs on the pending dialog stack are positioned below it. In the\n  // actual implementation, the modal dialog stacking is controlled by the\n  // top layer, where z-index has no effect.\n  this.overlay = document.createElement('div');\n  this.overlay.className = '_dialog_overlay';\n  this.overlay.addEventListener('click', function(e) {\n    this.forwardTab_ = undefined;\n    e.stopPropagation();\n    checkDOM([]);  // sanity-check DOM\n  }.bind(this));\n\n  this.handleKey_ = this.handleKey_.bind(this);\n  this.handleFocus_ = this.handleFocus_.bind(this);\n\n  this.zIndexLow_ = 100000;\n  this.zIndexHigh_ = 100000 + 150;\n\n  this.forwardTab_ = undefined;\n\n  if ('MutationObserver' in window) {\n    this.mo_ = new MutationObserver(function(records) {\n      var removed = [];\n      records.forEach(function(rec) {\n        for (var i = 0, c; c = rec.removedNodes[i]; ++i) {\n          if (!(c instanceof Element)) {\n            continue;\n          } else if (c.localName === 'dialog') {\n            removed.push(c);\n          }\n          removed = removed.concat(c.querySelectorAll('dialog'));\n        }\n      });\n      removed.length && checkDOM(removed);\n    });\n  }\n};\n\n/**\n * Called on the first modal dialog being shown. Adds the overlay and related\n * handlers.\n */\ndialogPolyfill.DialogManager.prototype.blockDocument = function() {\n  document.documentElement.addEventListener('focus', this.handleFocus_, true);\n  document.addEventListener('keydown', this.handleKey_);\n  this.mo_ && this.mo_.observe(document, {childList: true, subtree: true});\n};\n\n/**\n * Called on the first modal dialog being removed, i.e., when no more modal\n * dialogs are visible.\n */\ndialogPolyfill.DialogManager.prototype.unblockDocument = function() {\n  document.documentElement.removeEventListener('focus', this.handleFocus_, true);\n  document.removeEventListener('keydown', this.handleKey_);\n  this.mo_ && this.mo_.disconnect();\n};\n\n/**\n * Updates the stacking of all known dialogs.\n */\ndialogPolyfill.DialogManager.prototype.updateStacking = function() {\n  var zIndex = this.zIndexHigh_;\n\n  for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) {\n    dpi.updateZIndex(--zIndex, --zIndex);\n    if (i === 0) {\n      this.overlay.style.zIndex = --zIndex;\n    }\n  }\n\n  // Make the overlay a sibling of the dialog itself.\n  var last = this.pendingDialogStack[0];\n  if (last) {\n    var p = last.dialog.parentNode || document.body;\n    p.appendChild(this.overlay);\n  } else if (this.overlay.parentNode) {\n    this.overlay.parentNode.removeChild(this.overlay);\n  }\n};\n\n/**\n * @param {Element} candidate to check if contained or is the top-most modal dialog\n * @return {boolean} whether candidate is contained in top dialog\n */\ndialogPolyfill.DialogManager.prototype.containedByTopDialog_ = function(candidate) {\n  while (candidate = findNearestDialog(candidate)) {\n    for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) {\n      if (dpi.dialog === candidate) {\n        return i === 0;  // only valid if top-most\n      }\n    }\n    candidate = candidate.parentElement;\n  }\n  return false;\n};\n\ndialogPolyfill.DialogManager.prototype.handleFocus_ = function(event) {\n  var target = event.composedPath ? event.composedPath()[0] : event.target;\n\n  if (this.containedByTopDialog_(target)) { return; }\n\n  if (document.activeElement === document.documentElement) { return; }\n\n  event.preventDefault();\n  event.stopPropagation();\n  safeBlur(/** @type {Element} */ (target));\n\n  if (this.forwardTab_ === undefined) { return; }  // move focus only from a tab key\n\n  var dpi = this.pendingDialogStack[0];\n  var dialog = dpi.dialog;\n  var position = dialog.compareDocumentPosition(target);\n  if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n    if (this.forwardTab_) {\n      // forward\n      dpi.focus_();\n    } else if (target !== document.documentElement) {\n      // backwards if we're not already focused on <html>\n      document.documentElement.focus();\n    }\n  }\n\n  return false;\n};\n\ndialogPolyfill.DialogManager.prototype.handleKey_ = function(event) {\n  this.forwardTab_ = undefined;\n  if (event.keyCode === 27) {\n    event.preventDefault();\n    event.stopPropagation();\n    var cancelEvent = new supportCustomEvent('cancel', {\n      bubbles: false,\n      cancelable: true\n    });\n    var dpi = this.pendingDialogStack[0];\n    if (dpi && safeDispatchEvent(dpi.dialog, cancelEvent)) {\n      dpi.dialog.close();\n    }\n  } else if (event.keyCode === 9) {\n    this.forwardTab_ = !event.shiftKey;\n  }\n};\n\n/**\n * Finds and downgrades any known modal dialogs that are no longer displayed. Dialogs that are\n * removed and immediately readded don't stay modal, they become normal.\n *\n * @param {!Array<!HTMLDialogElement>} removed that have definitely been removed\n */\ndialogPolyfill.DialogManager.prototype.checkDOM_ = function(removed) {\n  // This operates on a clone because it may cause it to change. Each change also calls\n  // updateStacking, which only actually needs to happen once. But who removes many modal dialogs\n  // at a time?!\n  var clone = this.pendingDialogStack.slice();\n  clone.forEach(function(dpi) {\n    if (removed.indexOf(dpi.dialog) !== -1) {\n      dpi.downgradeModal();\n    } else {\n      dpi.maybeHideModal();\n    }\n  });\n};\n\n/**\n * @param {!dialogPolyfillInfo} dpi\n * @return {boolean} whether the dialog was allowed\n */\ndialogPolyfill.DialogManager.prototype.pushDialog = function(dpi) {\n  var allowed = (this.zIndexHigh_ - this.zIndexLow_) / 2 - 1;\n  if (this.pendingDialogStack.length >= allowed) {\n    return false;\n  }\n  if (this.pendingDialogStack.unshift(dpi) === 1) {\n    this.blockDocument();\n  }\n  this.updateStacking();\n  return true;\n};\n\n/**\n * @param {!dialogPolyfillInfo} dpi\n */\ndialogPolyfill.DialogManager.prototype.removeDialog = function(dpi) {\n  var index = this.pendingDialogStack.indexOf(dpi);\n  if (index === -1) { return; }\n\n  this.pendingDialogStack.splice(index, 1);\n  if (this.pendingDialogStack.length === 0) {\n    this.unblockDocument();\n  }\n  this.updateStacking();\n};\n\ndialogPolyfill.dm = new dialogPolyfill.DialogManager();\ndialogPolyfill.formSubmitter = null;\ndialogPolyfill.imagemapUseValue = null;\n\n/**\n * Installs global handlers, such as click listers and native method overrides. These are needed\n * even if a no dialog is registered, as they deal with <form method=\"dialog\">.\n */\nif (window.HTMLDialogElement === undefined) {\n\n  /**\n   * If HTMLFormElement translates method=\"DIALOG\" into 'get', then replace the descriptor with\n   * one that returns the correct value.\n   */\n  var testForm = document.createElement('form');\n  testForm.setAttribute('method', 'dialog');\n  if (testForm.method !== 'dialog') {\n    var methodDescriptor = Object.getOwnPropertyDescriptor(HTMLFormElement.prototype, 'method');\n    if (methodDescriptor) {\n      // nb. Some older iOS and older PhantomJS fail to return the descriptor. Don't do anything\n      // and don't bother to update the element.\n      var realGet = methodDescriptor.get;\n      methodDescriptor.get = function() {\n        if (isFormMethodDialog(this)) {\n          return 'dialog';\n        }\n        return realGet.call(this);\n      };\n      var realSet = methodDescriptor.set;\n      /** @this {HTMLElement} */\n      methodDescriptor.set = function(v) {\n        if (typeof v === 'string' && v.toLowerCase() === 'dialog') {\n          return this.setAttribute('method', v);\n        }\n        return realSet.call(this, v);\n      };\n      Object.defineProperty(HTMLFormElement.prototype, 'method', methodDescriptor);\n    }\n  }\n\n  /**\n   * Global 'click' handler, to capture the <input type=\"submit\"> or <button> element which has\n   * submitted a <form method=\"dialog\">. Needed as Safari and others don't report this inside\n   * document.activeElement.\n   */\n  document.addEventListener('click', function(ev) {\n    dialogPolyfill.formSubmitter = null;\n    dialogPolyfill.imagemapUseValue = null;\n    if (ev.defaultPrevented) { return; }  // e.g. a submit which prevents default submission\n\n    var target = /** @type {Element} */ (ev.target);\n    if ('composedPath' in ev) {\n      var path = ev.composedPath();\n      target = path.shift() || target;\n    }\n    if (!target || !isFormMethodDialog(target.form)) { return; }\n\n    var valid = (target.type === 'submit' && ['button', 'input'].indexOf(target.localName) > -1);\n    if (!valid) {\n      if (!(target.localName === 'input' && target.type === 'image')) { return; }\n      // this is a <input type=\"image\">, which can submit forms\n      dialogPolyfill.imagemapUseValue = ev.offsetX + ',' + ev.offsetY;\n    }\n\n    var dialog = findNearestDialog(target);\n    if (!dialog) { return; }\n\n    dialogPolyfill.formSubmitter = target;\n\n  }, false);\n\n  /**\n   * Global 'submit' handler. This handles submits of `method=\"dialog\"` which are invalid, i.e.,\n   * outside a dialog. They get prevented.\n   */\n  document.addEventListener('submit', function(ev) {\n    var form = ev.target;\n    var dialog = findNearestDialog(form);\n    if (dialog) {\n      return;  // ignore, handle there\n    }\n\n    var submitter = findFormSubmitter(ev);\n    var formmethod = submitter && submitter.getAttribute('formmethod') || form.getAttribute('method');\n    if (formmethod === 'dialog') {\n      ev.preventDefault();\n    }\n  });\n\n  /**\n   * Replace the native HTMLFormElement.submit() method, as it won't fire the\n   * submit event and give us a chance to respond.\n   */\n  var nativeFormSubmit = HTMLFormElement.prototype.submit;\n  var replacementFormSubmit = function () {\n    if (!isFormMethodDialog(this)) {\n      return nativeFormSubmit.call(this);\n    }\n    var dialog = findNearestDialog(this);\n    dialog && dialog.close();\n  };\n  HTMLFormElement.prototype.submit = replacementFormSubmit;\n}\n\nexport default dialogPolyfill;\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\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","/** @license React v16.13.1\n * react-is.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'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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","/*\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","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","!function(e,r){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=r(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],r):\"object\"==typeof exports?exports[\"react-dialog-polyfill\"]=r(require(\"react\")):e[\"react-dialog-polyfill\"]=r(e.react)}(this,(function(e){return(()=>{\"use strict\";var r,t,n={811:e=>{e.exports=require(\"dialog-polyfill\")},297:r=>{r.exports=e}},o={};function a(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={exports:{}};return n[e](t,t.exports,a),t.exports}a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if(\"object\"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&\"function\"==typeof e.then)return e}var o=Object.create(null);a.r(o);var u={};r=r||[null,t({}),t([]),t(t)];for(var l=2&n&&e;\"object\"==typeof l&&!~r.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach((r=>u[r]=()=>e[r]));return u.default=()=>e,a.d(o,u),o},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),a.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var u={};return(()=>{a.r(u),a.d(u,{Modal:()=>i,Dialog:()=>f});var e=a(297),r=a.n(e);function t(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function n(){return(n=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}var o=(0,e.forwardRef)((function(t,o){var a=t.children,u=t.open,l=t.ready,i=t.onCancel,f=t.onClose,c=t.useAsModal,s=function(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(t,[\"children\",\"open\",\"ready\",\"onCancel\",\"onClose\",\"useAsModal\"]);return(0,e.useEffect)((function(){var e=o.current;e&&l&&e.open!==u&&(u?c?function(){return e.showModal()}:function(){return e.show()}:function(){return e.close()})()}),[l,u,o,c]),r().createElement(\"dialog\",n({},s,{ref:o,onCancel:function(e){e.preventDefault(),i(e,o.current)},onClose:function(e){f(e,o.current)}}),a)}));o.defaultProps={onClose:function(){},onCancel:function(){}};var l=function(u){var l,i,f=(0,e.createRef)(),c=(l=(0,e.useState)(),i=2,function(e){if(Array.isArray(e))return e}(l)||function(e,r){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e)){var t=[],n=!0,o=!1,a=void 0;try{for(var u,l=e[Symbol.iterator]();!(n=(u=l.next()).done)&&(t.push(u.value),!r||t.length!==r);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==l.return||l.return()}finally{if(o)throw a}}return t}}(l,i)||function(e,r){if(e){if(\"string\"==typeof e)return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}(l,i)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),s=c[0],d=c[1];return(0,e.useEffect)((function(){var e=f.current;if(!s&&e){var r=!0;return Promise.resolve().then(a.t.bind(a,811,23)).then((function(r){r.default.registerDialog(e)})).catch((function(e){return console.warn(\"dialog-polyfill was not loaded\")})).finally((function(){r&&d(!0)})),function(){return r=!1}}}),[f,s]),r().createElement(o,n({},u,{ready:s,ref:f}))},i=function(e){return r().createElement(l,n({},e,{useAsModal:!0}))},f=function(e){return r().createElement(l,n({},e,{useAsModal:!1}))}})(),u})()}));","/** @license React v17.0.2\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\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(y(227));var ba=new Set,ca={};function da(a,b){ea(a,b);ea(a+\"Capture\",b)}\nfunction ea(a,b){ca[a]=b;for(a=0;a<b.length;a++)ba.add(b[a])}\nvar fa=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ha=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ia=Object.prototype.hasOwnProperty,\nja={},ka={};function la(a){if(ia.call(ka,a))return!0;if(ia.call(ja,a))return!1;if(ha.test(a))return ka[a]=!0;ja[a]=!0;return!1}function ma(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction na(a,b,c,d){if(null===b||\"undefined\"===typeof b||ma(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function B(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 D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(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){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(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(oa,pa);D[b]=new B(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(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(na(b,c,e,d)&&(c=null),d||null===e?la(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar ra=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sa=60103,ta=60106,ua=60107,wa=60108,xa=60114,ya=60109,za=60110,Aa=60112,Ba=60113,Ca=60120,Da=60115,Ea=60116,Fa=60121,Ga=60128,Ha=60129,Ia=60130,Ja=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;sa=E(\"react.element\");ta=E(\"react.portal\");ua=E(\"react.fragment\");wa=E(\"react.strict_mode\");xa=E(\"react.profiler\");ya=E(\"react.provider\");za=E(\"react.context\");Aa=E(\"react.forward_ref\");Ba=E(\"react.suspense\");Ca=E(\"react.suspense_list\");Da=E(\"react.memo\");Ea=E(\"react.lazy\");Fa=E(\"react.block\");E(\"react.scope\");Ga=E(\"react.opaque.id\");Ha=E(\"react.debug_trace_mode\");Ia=E(\"react.offscreen\");Ja=E(\"react.legacy_hidden\")}\nvar Ka=\"function\"===typeof Symbol&&Symbol.iterator;function La(a){if(null===a||\"object\"!==typeof a)return null;a=Ka&&a[Ka]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ma;function Na(a){if(void 0===Ma)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Ma=b&&b[1]||\"\"}return\"\\n\"+Ma+a}var Oa=!1;\nfunction Pa(a,b){if(!a||Oa)return\"\";Oa=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(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 ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function 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 m({},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 $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(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\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(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 bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(y(91));return m({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(y(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({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 vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(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}}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(y(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<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(a,b,c,d,e){return a(b,c,d,e)}function Ib(){}var Jb=Gb,Kb=!1,Lb=!1;function Mb(){if(null!==zb||null!==Ab)Ib(),Fb()}\nfunction Nb(a,b,c){if(Lb)return a(b,c);Lb=!0;try{return Jb(a,b,c)}finally{Lb=!1,Mb()}}\nfunction Ob(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(y(231,b,typeof c));return c}var Pb=!1;if(fa)try{var Qb={};Object.defineProperty(Qb,\"passive\",{get:function(){Pb=!0}});window.addEventListener(\"test\",Qb,Qb);window.removeEventListener(\"test\",Qb,Qb)}catch(a){Pb=!1}function Rb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(n){this.onError(n)}}var Sb=!1,Tb=null,Ub=!1,Vb=null,Wb={onError:function(a){Sb=!0;Tb=a}};function Xb(a,b,c,d,e,f,g,h,k){Sb=!1;Tb=null;Rb.apply(Wb,arguments)}\nfunction Yb(a,b,c,d,e,f,g,h,k){Xb.apply(this,arguments);if(Sb){if(Sb){var l=Tb;Sb=!1;Tb=null}else throw Error(y(198));Ub||(Ub=!0,Vb=l)}}function Zb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function $b(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function ac(a){if(Zb(a)!==a)throw Error(y(188));}\nfunction bc(a){var b=a.alternate;if(!b){b=Zb(a);if(null===b)throw Error(y(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return ac(e),a;if(f===d)return ac(e),b;f=f.sibling}throw Error(y(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(y(189));}}if(c.alternate!==d)throw Error(y(190));}if(3!==c.tag)throw Error(y(188));return c.stateNode.current===c?a:b}function cc(a){a=bc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction dc(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}var ec,fc,gc,hc,ic=!1,jc=[],kc=null,lc=null,mc=null,nc=new Map,oc=new Map,pc=[],qc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction rc(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function sc(a,b){switch(a){case \"focusin\":case \"focusout\":kc=null;break;case \"dragenter\":case \"dragleave\":lc=null;break;case \"mouseover\":case \"mouseout\":mc=null;break;case \"pointerover\":case \"pointerout\":nc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":oc.delete(b.pointerId)}}\nfunction tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=rc(b,c,d,e,f),null!==b&&(b=Cb(b),null!==b&&fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction uc(a,b,c,d,e){switch(b){case \"focusin\":return kc=tc(kc,a,b,c,d,e),!0;case \"dragenter\":return lc=tc(lc,a,b,c,d,e),!0;case \"mouseover\":return mc=tc(mc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;nc.set(f,tc(nc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,oc.set(f,tc(oc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction vc(a){var b=wc(a.target);if(null!==b){var c=Zb(b);if(null!==c)if(b=c.tag,13===b){if(b=$b(c),null!==b){a.blockedOn=b;hc(a.lanePriority,function(){r.unstable_runWithPriority(a.priority,function(){gc(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c)return b=Cb(c),null!==b&&fc(b),a.blockedOn=c,!1;b.shift()}return!0}function zc(a,b,c){xc(a)&&c.delete(b)}\nfunction Ac(){for(ic=!1;0<jc.length;){var a=jc[0];if(null!==a.blockedOn){a=Cb(a.blockedOn);null!==a&&ec(a);break}for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&jc.shift()}null!==kc&&xc(kc)&&(kc=null);null!==lc&&xc(lc)&&(lc=null);null!==mc&&xc(mc)&&(mc=null);nc.forEach(zc);oc.forEach(zc)}\nfunction Bc(a,b){a.blockedOn===b&&(a.blockedOn=null,ic||(ic=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Ac)))}\nfunction Cc(a){function b(b){return Bc(b,a)}if(0<jc.length){Bc(jc[0],a);for(var c=1;c<jc.length;c++){var d=jc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==kc&&Bc(kc,a);null!==lc&&Bc(lc,a);null!==mc&&Bc(mc,a);nc.forEach(b);oc.forEach(b);for(c=0;c<pc.length;c++)d=pc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<pc.length&&(c=pc[0],null===c.blockedOn);)vc(c),null===c.blockedOn&&pc.shift()}\nfunction Dc(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Ec={animationend:Dc(\"Animation\",\"AnimationEnd\"),animationiteration:Dc(\"Animation\",\"AnimationIteration\"),animationstart:Dc(\"Animation\",\"AnimationStart\"),transitionend:Dc(\"Transition\",\"TransitionEnd\")},Fc={},Gc={};\nfa&&(Gc=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ec.animationend.animation,delete Ec.animationiteration.animation,delete Ec.animationstart.animation),\"TransitionEvent\"in window||delete Ec.transitionend.transition);function Hc(a){if(Fc[a])return Fc[a];if(!Ec[a])return a;var b=Ec[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Gc)return Fc[a]=b[c];return a}\nvar Ic=Hc(\"animationend\"),Jc=Hc(\"animationiteration\"),Kc=Hc(\"animationstart\"),Lc=Hc(\"transitionend\"),Mc=new Map,Nc=new Map,Oc=[\"abort\",\"abort\",Ic,\"animationEnd\",Jc,\"animationIteration\",Kc,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\n\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",Lc,\"transitionEnd\",\"waiting\",\"waiting\"];function Pc(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e=\"on\"+(e[0].toUpperCase()+e.slice(1));Nc.set(d,b);Mc.set(d,e);da(e,[d])}}var Qc=r.unstable_now;Qc();var F=8;\nfunction Rc(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function Sc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function Tc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,a));}}\nfunction Uc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=Rc(k),e=F):(h&=f,0!==h&&(d=Rc(h),e=F))}else f=c&~g,0!==f?(d=Rc(f),e=F):0!==h&&(d=Rc(h),e=F);if(0===d)return 0;d=31-Vc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){Rc(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Vc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction Wc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Xc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=Yc(24&~b),0===a?Xc(10,b):a;case 10:return a=Yc(192&~b),0===a?Xc(8,b):a;case 8:return a=Yc(3584&~b),0===a&&(a=Yc(4186112&~b),0===a&&(a=512)),a;case 2:return b=Yc(805306368&~b),0===b&&(b=268435456),b}throw Error(y(358,a));}function Yc(a){return a&-a}function Zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0<jc.length&&-1<qc.indexOf(a))a=rc(null,a,b,c,d),jc.push(a);else{var f=yc(a,b,c,d);if(null===f)e&&sc(a,d);else{if(e){if(-1<qc.indexOf(a)){a=rc(f,a,b,c,d);jc.push(a);return}if(uc(f,a,b,c,d))return;sc(a,d)}jd(a,b,d,null,c)}}}}\nfunction yc(a,b,c,d){var e=xb(d);e=wc(e);if(null!==e){var f=Zb(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=$b(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==e&&(e=null)}}jd(a,b,d,e,c);return null}var kd=null,ld=null,md=null;\nfunction nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}function od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}m(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=m({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=m({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=m({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=m({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=m({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=m({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=m({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=m({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=m({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=m({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=m({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=m({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=fa&&\"CompositionEvent\"in window,be=null;fa&&\"documentMode\"in document&&(be=document.documentMode);var ce=fa&&\"TextEvent\"in window&&!be,de=fa&&(!ae||be&&8<be&&11>=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.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(fa){var xe;if(fa){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));a=re;if(Kb)a(b);else{Kb=!0;try{Gb(a,b)}finally{Kb=!1,Mb()}}}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge,Ie=Object.prototype.hasOwnProperty;\nfunction Je(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!Ie.call(b,c[d])||!He(a[c[d]],b[c[d]]))return!1;return!0}function Ke(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Le(a,b){var c=Ke(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){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 Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=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&&Oe(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&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),\n0);Pc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);Pc(Oc,2);for(var Ve=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),We=0;We<Ve.length;We++)Nc.set(Ve[We],0);ea(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);\nea(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ea(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ea(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);da(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));da(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));da(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);da(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));da(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Xe=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Ye=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\nfunction Ze(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Yb(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}}}if(Ub)throw a=Vb,Ub=!1,Vb=null,a;}\nfunction G(a,b){var c=$e(b),d=a+\"__bubble\";c.has(d)||(af(b,a,2,!1),c.add(d))}var bf=\"_reactListening\"+Math.random().toString(36).slice(2);function cf(a){a[bf]||(a[bf]=!0,ba.forEach(function(b){Ye.has(b)||df(b,!1,a,null);df(b,!0,a,null)}))}\nfunction df(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;\"selectionchange\"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Ye.has(a)){if(\"scroll\"!==a)return;e|=2;f=d}var g=$e(f),h=a+\"__\"+(b?\"capture\":\"bubble\");g.has(h)||(b&&(e|=4),af(f,a,e,b),g.add(h))}\nfunction af(a,b,c,d){var e=Nc.get(b);switch(void 0===e?2:e){case 0:e=gd;break;case 1:e=id;break;default:e=hd}c=e.bind(null,b,c,a);e=void 0;!Pb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction jd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Nb(function(){var d=f,e=xb(c),g=[];\na:{var h=Mc.get(a);if(void 0!==h){var k=td,x=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":x=\"focus\";k=Fd;break;case \"focusout\":x=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case Ic:case Jc:case Kc:k=Hd;break;case Lc:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var w=0!==(b&4),z=!w&&\"scroll\"===a,u=w?null!==h?h+\"Capture\":null:h;w=[];for(var t=d,q;null!==\nt;){q=t;var v=q.stateNode;5===q.tag&&null!==v&&(q=v,null!==u&&(v=Ob(t,u),null!=v&&w.push(ef(t,v,q))));if(z)break;t=t.return}0<w.length&&(h=new k(h,x,null,c,e),g.push({event:h,listeners:w}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&0===(b&16)&&(x=c.relatedTarget||c.fromElement)&&(wc(x)||x[ff]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(x=c.relatedTarget||c.toElement,k=d,x=x?wc(x):null,null!==\nx&&(z=Zb(x),x!==z||5!==x.tag&&6!==x.tag))x=null}else k=null,x=d;if(k!==x){w=Bd;v=\"onMouseLeave\";u=\"onMouseEnter\";t=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)w=Td,v=\"onPointerLeave\",u=\"onPointerEnter\",t=\"pointer\";z=null==k?h:ue(k);q=null==x?h:ue(x);h=new w(v,t+\"leave\",k,c,e);h.target=z;h.relatedTarget=q;v=null;wc(e)===d&&(w=new w(u,t+\"enter\",x,c,e),w.target=q,w.relatedTarget=z,v=w);z=v;if(k&&x)b:{w=k;u=x;t=0;for(q=w;q;q=gf(q))t++;q=0;for(v=u;v;v=gf(v))q++;for(;0<t-q;)w=gf(w),t--;for(;0<q-t;)u=\ngf(u),q--;for(;t--;){if(w===u||null!==u&&w===u.alternate)break b;w=gf(w);u=gf(u)}w=null}else w=null;null!==k&&hf(g,h,k,w,!1);null!==x&&null!==z&&hf(g,z,x,w,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var J=ve;else if(me(h))if(we)J=Fe;else{J=De;var K=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(J=Ee);if(J&&(J=J(a,d))){ne(g,J,c,e);break a}K&&K(a,h,d);\"focusout\"===a&&(K=h._wrapperState)&&\nK.controlled&&\"number\"===h.type&&bb(h,\"number\",h.value)}K=d?ue(d):window;switch(a){case \"focusin\":if(me(K)||\"true\"===K.contentEditable)Qe=K,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var Q;if(ae)b:{switch(a){case \"compositionstart\":var L=\"onCompositionStart\";break b;case \"compositionend\":L=\"onCompositionEnd\";break b;\ncase \"compositionupdate\":L=\"onCompositionUpdate\";break b}L=void 0}else ie?ge(a,c)&&(L=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(L=\"onCompositionStart\");L&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==L?\"onCompositionEnd\"===L&&ie&&(Q=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),K=oe(d,L),0<K.length&&(L=new Ld(L,a,null,c,e),g.push({event:L,listeners:K}),Q?L.data=Q:(Q=he(c),null!==Q&&(L.data=Q))));if(Q=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),0<d.length&&(e=new Ld(\"onBeforeInput\",\n\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=Q)}se(g,b)})}function ef(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Ob(a,c),null!=f&&d.unshift(ef(a,f,e)),f=Ob(a,b),null!=f&&d.push(ef(a,f,e)));a=a.return}return d}function gf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction hf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Ob(c,f),null!=k&&g.unshift(ef(c,k,h))):e||(k=Ob(c,f),null!=k&&g.push(ef(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function jf(){}var kf=null,lf=null;function mf(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction nf(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var of=\"function\"===typeof setTimeout?setTimeout:void 0,pf=\"function\"===typeof clearTimeout?clearTimeout:void 0;function qf(a){1===a.nodeType?a.textContent=\"\":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=\"\"))}\nfunction rf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function sf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var tf=0;function uf(a){return{$$typeof:Ga,toString:a,valueOf:a}}var vf=Math.random().toString(36).slice(2),wf=\"__reactFiber$\"+vf,xf=\"__reactProps$\"+vf,ff=\"__reactContainer$\"+vf,yf=\"__reactEvents$\"+vf;\nfunction wc(a){var b=a[wf];if(b)return b;for(var c=a.parentNode;c;){if(b=c[ff]||c[wf]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=sf(a);null!==a;){if(c=a[wf])return c;a=sf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[wf]||a[ff];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(y(33));}function Db(a){return a[xf]||null}\nfunction $e(a){var b=a[yf];void 0===b&&(b=a[yf]=new Set);return b}var zf=[],Af=-1;function Bf(a){return{current:a}}function H(a){0>Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});ag=null}catch(c){throw null!==ag&&(ag=ag.slice(a+1)),Of(Uf,ig),c;}finally{cg=!1}}}var kg=ra.ReactCurrentBatchConfig;function lg(a,b){if(a&&a.defaultProps){b=m({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var mg=Bf(null),ng=null,og=null,pg=null;function qg(){pg=og=ng=null}\nfunction rg(a){var b=mg.current;H(mg);a.type._context._currentValue=b}function sg(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function tg(a,b){ng=a;pg=og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(ug=!0),a.firstContext=null)}\nfunction vg(a,b){if(pg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)pg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===og){if(null===ng)throw Error(y(308));og=b;ng.dependencies={lanes:0,firstContext:b,responders:null}}else og=og.next=b}return a._currentValue}var wg=!1;function xg(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}\nfunction yg(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 zg(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}function Ag(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction Bg(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 Cg(a,b,c,d){var e=a.updateQueue;wg=!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 n=a.alternate;if(null!==n){n=n.updateQueue;var A=n.lastBaseUpdate;A!==g&&(null===A?n.firstBaseUpdate=l:A.next=l,n.lastBaseUpdate=k)}}if(null!==f){A=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var C=a,x=f;h=b;p=c;switch(x.tag){case 1:C=x.payload;if(\"function\"===typeof C){A=C.call(p,A,h);break a}A=C;break a;case 3:C.flags=C.flags&-4097|64;case 0:C=x.payload;h=\"function\"===typeof C?C.call(p,A,h):C;if(null===h||void 0===h)break a;A=m({},A,h);break a;case 2:wg=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=A):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=A);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;Dg|=g;a.lanes=g;a.memoizedState=A}}function Eg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(y(191,e));e.call(d)}}}var Fg=(new aa.Component).refs;\nfunction Gg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:m({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Kg={isMounted:function(a){return(a=a._reactInternals)?Zb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=Hg(),d=Ig(a),e=zg(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);Ag(a,e);Jg(a,d,c)}};function Lg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Je(c,d)||!Je(e,f):!0}\nfunction Mg(a,b,c){var d=!1,e=Cf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=vg(f):(e=Ff(b)?Df:M.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Ef(a,e):Cf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Kg;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Ng(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Kg.enqueueReplaceState(b,b.state,null)}\nfunction Og(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Fg;xg(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=vg(f):(f=Ff(b)?Df:M.current,e.context=Ef(a,f));Cg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Gg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Kg.enqueueReplaceState(e,e.state,null),Cg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Pg=Array.isArray;\nfunction Qg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(y(309));var d=c.stateNode}if(!d)throw Error(y(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Fg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(y(284));if(!c._owner)throw Error(y(290,a));}return a}\nfunction Rg(a,b){if(\"textarea\"!==a.type)throw Error(y(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Sg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Tg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Ug(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Qg(a,b,c),d.return=a,d;d=Vg(c.type,c.key,c.props,null,a.mode,d);d.ref=Qg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nWg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Xg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function A(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Ug(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case sa:return c=Vg(b.type,b.key,b.props,null,a.mode,c),c.ref=Qg(a,null,b),c.return=a,c;case ta:return b=Wg(b,a.mode,c),b.return=a,b}if(Pg(b)||La(b))return b=Xg(b,\na.mode,c,null),b.return=a,b;Rg(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case sa:return c.key===e?c.type===ua?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ta:return c.key===e?l(a,b,c,d):null}if(Pg(c)||La(c))return null!==e?null:n(a,b,c,d,null);Rg(a,c)}return null}function C(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case sa:return a=a.get(null===d.key?c:d.key)||null,d.type===ua?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ta:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Pg(d)||La(d))return a=a.get(c)||null,n(b,a,d,e,null);Rg(b,d)}return null}function x(e,g,h,k){for(var l=null,t=null,u=g,z=g=0,q=null;null!==u&&z<h.length;z++){u.index>z?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;z<h.length;z++)u=A(e,h[z],k),null!==u&&(g=f(u,g,z),null===t?l=u:t.sibling=u,t=u);return l}for(u=d(e,u);z<h.length;z++)q=C(u,e,z,h[z],k),null!==q&&(a&&null!==q.alternate&&u.delete(null===q.key?z:q.key),g=f(q,g,z),null===t?l=q:t.sibling=q,t=q);a&&u.forEach(function(a){return b(e,a)});return l}function w(e,g,h,k){var l=La(h);if(\"function\"!==typeof l)throw Error(y(150));h=l.call(h);if(null==\nh)throw Error(y(151));for(var t=l=null,u=g,z=g=0,q=null,n=h.next();null!==u&&!n.done;z++,n=h.next()){u.index>z?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;a<th.length;a++)th[a]._workInProgressVersionPrimary=null;th.length=0}var vh=ra.ReactCurrentDispatcher,wh=ra.ReactCurrentBatchConfig,xh=0,R=null,S=null,T=null,yh=!1,zh=!1;function Ah(){throw Error(y(321));}function Bh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Ch(a,b,c,d,e,f){xh=f;R=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;vh.current=null===a||null===a.memoizedState?Dh:Eh;a=c(d,e);if(zh){f=0;do{zh=!1;if(!(25>f))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-Vc(h),v=1<<k;d[k]|=a;h&=~v}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=Ig(w);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);He(C,c)&&He(x,b)&&He(A,d)||(a={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:n},a.dispatch=l=Oh.bind(null,R,a),k.queue=a,k.baseQueue=null,n=Mh(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction Ph(a,b,c){var d=Ih();return Nh(d,a,b,c)}function Qh(a){var b=Hh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:a};a=a.dispatch=Oh.bind(null,R,a);return[b.memoizedState,a]}\nfunction Rh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=R.updateQueue;null===b?(b={lastEffect:null},R.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Sh(a){var b=Hh();a={current:a};return b.memoizedState=a}function Th(){return Ih().memoizedState}function Uh(a,b,c,d){var e=Hh();R.flags|=a;e.memoizedState=Rh(1|b,c,void 0,void 0===d?null:d)}\nfunction Vh(a,b,c,d){var e=Ih();d=void 0===d?null:d;var f=void 0;if(null!==S){var g=S.memoizedState;f=g.destroy;if(null!==d&&Bh(d,g.deps)){Rh(b,c,f,d);return}}R.flags|=a;e.memoizedState=Rh(1|b,c,f,d)}function Wh(a,b){return Uh(516,4,a,b)}function Xh(a,b){return Vh(516,4,a,b)}function Yh(a,b){return Vh(4,2,a,b)}function Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}\nfunction $h(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,2,Zh.bind(null,b,a),c)}function ai(){}function bi(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function ci(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction di(a,b){var c=eg();gg(98>c?98:c,function(){a(!0)});gg(97<c?97:c,function(){var c=wh.transition;wh.transition=1;try{a(!1),b()}finally{wh.transition=c}})}\nfunction Oh(a,b,c){var d=Hg(),e=Ig(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===R||null!==g&&g===R)zh=yh=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(He(k,h))return}catch(l){}finally{}Jg(a,e,d)}}\nvar Gh={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},Dh={readContext:vg,useCallback:function(a,b){Hh().memoizedState=[a,void 0===b?null:b];return a},useContext:vg,useEffect:Wh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Uh(4,2,Zh.bind(null,\nb,a),c)},useLayoutEffect:function(a,b){return Uh(4,2,a,b)},useMemo:function(a,b){var c=Hh();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Hh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Oh.bind(null,R,a);return[d.memoizedState,a]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(a){var b=Qh(a),c=b[0],d=b[1];Wh(function(){var b=wh.transition;\nwh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Qh(!1),b=a[0];a=di.bind(null,a[1]);Sh(a);return[a,b]},useMutableSource:function(a,b,c){var d=Hh();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return Nh(d,a,b,c)},useOpaqueIdentifier:function(){if(lh){var a=!1,b=uf(function(){a||(a=!0,c(\"r:\"+(tf++).toString(36)));throw Error(y(355));}),c=Qh(b)[1];0===(R.mode&2)&&(R.flags|=516,Rh(5,function(){c(\"r:\"+(tf++).toString(36))},\nvoid 0,null));return b}b=\"r:\"+(tf++).toString(36);Qh(b);return b},unstable_isNewReconciler:!1},Eh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Kh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Kh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},Fh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Lh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Lh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},ei=ra.ReactCurrentOwner,ug=!1;function fi(a,b,c,d){b.child=null===a?Zg(b,null,c,d):Yg(b,a.child,c,d)}function gi(a,b,c,d,e){c=c.render;var f=b.ref;tg(b,e);d=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,d,e);return b.child}\nfunction ii(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!ji(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ki(a,b,g,d,e,f);a=Vg(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Je,c(e,d)&&a.ref===b.ref))return hi(a,b,f);b.flags|=1;a=Tg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ki(a,b,c,d,e,f){if(null!==a&&Je(a.memoizedProps,d)&&a.ref===b.ref)if(ug=!1,0!==(f&e))0!==(a.flags&16384)&&(ug=!0);else return b.lanes=a.lanes,hi(a,b,f);return li(a,b,c,d,f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},ni(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},ni(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},ni(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,ni(b,d);fi(a,b,e,c);return b.child}\nfunction oi(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function li(a,b,c,d,e){var f=Ff(c)?Df:M.current;f=Ef(b,f);tg(b,e);c=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,c,e);return b.child}\nfunction pi(a,b,c,d,e){if(Ff(c)){var f=!0;Jf(b)}else f=!1;tg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Mg(b,c,d),Og(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=vg(l):(l=Ff(c)?Df:M.current,l=Ef(b,l));var n=c.getDerivedStateFromProps,A=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;A||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ng(b,g,d,l);wg=!1;var p=b.memoizedState;g.state=p;Cg(b,d,g,e);k=b.memoizedState;h!==d||p!==k||N.current||wg?(\"function\"===typeof n&&(Gg(b,c,n,d),k=b.memoizedState),(h=wg||Lg(b,c,h,d,p,k,l))?(A||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:lg(b.type,h);g.props=l;A=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=vg(k):(k=Ff(c)?Df:M.current,k=Ef(b,k));var C=c.getDerivedStateFromProps;(n=\"function\"===typeof C||\n\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==A||p!==k)&&Ng(b,g,d,k);wg=!1;p=b.memoizedState;g.state=p;Cg(b,d,g,e);var x=b.memoizedState;h!==A||p!==x||N.current||wg?(\"function\"===typeof C&&(Gg(b,c,C,d),x=b.memoizedState),(l=wg||Lg(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return qi(a,b,c,d,f,e)}\nfunction qi(a,b,c,d,e,f){oi(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Kf(b,c,!1),hi(a,b,f);d=b.stateNode;ei.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Yg(b,a.child,null,f),b.child=Yg(b,null,h,f)):fi(a,b,h,f);b.memoizedState=d.state;e&&Kf(b,c,!0);return b.child}function ri(a){var b=a.stateNode;b.pendingContext?Hf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Hf(a,b.context,!1);eh(a,b.containerInfo)}\nvar si={dehydrated:null,retryLane:0};\nfunction ti(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);I(P,e&1);if(null===a){void 0!==d.fallback&&ph(b);a=d.children;e=d.fallback;if(f)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=si,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=si,b.lanes=33554432,a;c=vi({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}function ui(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=vi(b,e,0,null);c=Xg(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction xi(a,b,c,d){var e=a.child;a=e.sibling;c=Tg(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction wi(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Tg(g,h);null!==a?d=Tg(a,d):(d=Xg(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yi(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);sg(a.return,b)}\nfunction zi(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction Ai(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;fi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&yi(a,c);else if(19===a.tag)yi(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(P,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===ih(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);zi(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===ih(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}zi(b,!0,c,null,f,b.lastEffect);break;case \"together\":zi(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction hi(a,b,c){null!==a&&(b.dependencies=a.dependencies);Dg|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(y(153));if(null!==b.child){a=b.child;c=Tg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Tg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}var Bi,Ci,Di,Ei;\nBi=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Ci=function(){};\nDi=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;dh(ah.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"option\":e=eb(a,e);d=eb(a,d);f=[];break;case \"select\":e=m({},e,{value:void 0});d=m({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=jf)}vb(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===\nl){var h=e[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ca.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||\n(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,c)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ca.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&G(\"scroll\",a),f||h===k||(f=[])):\"object\"===typeof k&&null!==k&&k.$$typeof===Ga?k.toString():(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",\nc);var l=f;if(b.updateQueue=l)b.flags|=4}};Ei=function(a,b,c,d){c!==d&&(b.flags|=4)};function Fi(a,b){if(!lh)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction Gi(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Ff(b.type)&&Gf(),null;case 3:fh();H(N);H(M);uh();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)rh(b)?b.flags|=4:d.hydrate||(b.flags|=256);Ci(b);return null;case 5:hh(b);var e=dh(ch.current);c=b.type;if(null!==a&&null!=b.stateNode)Di(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(y(166));return null}a=dh(ah.current);if(rh(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[wf]=b;d[xf]=f;switch(c){case \"dialog\":G(\"cancel\",d);G(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<Xe.length;a++)G(Xe[a],d);break;case \"source\":G(\"error\",d);break;case \"img\":case \"image\":case \"link\":G(\"error\",d);G(\"load\",d);break;case \"details\":G(\"toggle\",d);break;case \"input\":Za(d,f);G(\"invalid\",d);break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};G(\"invalid\",d);break;case \"textarea\":hb(d,f),G(\"invalid\",d)}vb(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],\"children\"===g?\"string\"===typeof e?d.textContent!==e&&(a=[\"children\",e]):\"number\"===typeof e&&d.textContent!==\"\"+e&&(a=[\"children\",\"\"+e]):ca.hasOwnProperty(g)&&null!=e&&\"onScroll\"===g&&G(\"scroll\",d));switch(c){case \"input\":Va(d);cb(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=\njf)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;a===kb.html&&(a=lb(c));a===kb.html?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"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[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<Xe.length;e++)G(Xe[e],a);e=d;break;case \"source\":G(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":G(\"error\",a);G(\"load\",a);e=d;break;case \"details\":G(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);G(\"invalid\",a);break;case \"option\":e=eb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=m({},d,{value:void 0});G(\"invalid\",a);break;case \"textarea\":hb(a,d);e=\ngb(a,d);G(\"invalid\",a);break;default:e=d}vb(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?tb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&ob(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==c||\"\"!==k)&&pb(a,k):\"number\"===typeof k&&pb(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ca.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&G(\"scroll\",a):null!=k&&qa(a,f,k,g))}switch(c){case \"input\":Va(a);cb(a,d,!1);\nbreak;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=jf)}mf(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)Ei(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(y(166));\nc=dh(ch.current);dh(ah.current);rh(b)?(d=b.stateNode,c=b.memoizedProps,d[wf]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[wf]=b,b.stateNode=d)}return null;case 13:H(P);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&rh(b):c=null!==a.memoizedState;if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(P.current&1))0===V&&(V=3);else{if(0===V||3===V)V=\n4;null===U||0===(Dg&134217727)&&0===(Hi&134217727)||Ii(U,W)}if(d||c)b.flags|=4;return null;case 4:return fh(),Ci(b),null===a&&cf(b.stateNode.containerInfo),null;case 10:return rg(b),null;case 17:return Ff(b.type)&&Gf(),null;case 19:H(P);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)Fi(d,!1);else{if(0!==V||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=ih(a);if(null!==g){b.flags|=64;Fi(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);\nnull===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,\nf.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;I(P,P.current&1|2);return b.child}a=a.sibling}null!==d.tail&&O()>Ji&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;e<f.length;e+=\n2){var g=f[e],h=f[e+1];\"style\"===g?tb(c,h):\"dangerouslySetInnerHTML\"===g?ob(c,h):\"children\"===g?pb(c,h):qa(c,g,h,b)}switch(a){case \"input\":ab(c,d);break;case \"textarea\":ib(c,d);break;case \"select\":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?fb(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?fb(c,!!d.multiple,d.defaultValue,!0):fb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(y(162));b.stateNode.nodeValue=\nb.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,Cc(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(jj=O(),aj(b.child,!0));kj(b);return;case 19:kj(b);return;case 17:return;case 23:case 24:aj(b,null!==b.memoizedState);return}throw Error(y(163));}function kj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ui);b.forEach(function(b){var d=lj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction mj(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var nj=Math.ceil,oj=ra.ReactCurrentDispatcher,pj=ra.ReactCurrentOwner,X=0,U=null,Y=null,W=0,qj=0,rj=Bf(0),V=0,sj=null,tj=0,Dg=0,Hi=0,uj=0,vj=null,jj=0,Ji=Infinity;function wj(){Ji=O()+500}var Z=null,Qi=!1,Ri=null,Ti=null,xj=!1,yj=null,zj=90,Aj=[],Bj=[],Cj=null,Dj=0,Ej=null,Fj=-1,Gj=0,Hj=0,Ij=null,Jj=!1;function Hg(){return 0!==(X&48)?O():-1!==Fj?Fj:Fj=O()}\nfunction Ig(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===eg()?1:2;0===Gj&&(Gj=tj);if(0!==kg.transition){0!==Hj&&(Hj=null!==vj?vj.pendingLanes:0);a=Gj;var b=4186112&~Hj;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=eg();0!==(X&4)&&98===a?a=Xc(12,Gj):(a=Sc(a),a=Xc(a,Gj));return a}\nfunction Jg(a,b,c){if(50<Dj)throw Dj=0,Ej=null,Error(y(185));a=Kj(a,b);if(null===a)return null;$c(a,b,c);a===U&&(Hi|=b,4===V&&Ii(a,W));var d=eg();1===b?0!==(X&8)&&0===(X&48)?Lj(a):(Mj(a,c),0===X&&(wj(),ig())):(0===(X&4)||98!==d&&99!==d||(null===Cj?Cj=new Set([a]):Cj.add(a)),Mj(a,c));vj=a}function Kj(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}\nfunction Mj(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Vc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;Rc(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Uc(a,a===U?W:0);b=F;if(0===d)null!==c&&(c!==Zf&&Pf(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Zf&&Pf(c)}15===b?(c=Lj.bind(null,a),null===ag?(ag=[c],bg=Of(Uf,jg)):ag.push(c),\nc=Zf):14===b?c=hg(99,Lj.bind(null,a)):(c=Tc(b),c=hg(c,Nj.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Nj(a){Fj=-1;Hj=Gj=0;if(0!==(X&48))throw Error(y(327));var b=a.callbackNode;if(Oj()&&a.callbackNode!==b)return null;var c=Uc(a,a===U?W:0);if(0===c)return null;var d=c;var e=X;X|=16;var f=Pj();if(U!==a||W!==d)wj(),Qj(a,d);do try{Rj();break}catch(h){Sj(a,h)}while(1);qg();oj.current=f;X=e;null!==Y?d=0:(U=null,W=0,d=V);if(0!==(tj&Hi))Qj(a,0);else if(0!==d){2===d&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),c=Wc(a),0!==c&&(d=Tj(a,c)));if(1===d)throw b=sj,Qj(a,0),Ii(a,c),Mj(a,O()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(y(345));case 2:Uj(a);break;case 3:Ii(a,c);if((c&62914560)===c&&(d=jj+500-O(),10<d)){if(0!==Uc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){Hg();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=of(Uj.bind(null,a),d);break}Uj(a);break;case 4:Ii(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-Vc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10<c){a.timeoutHandle=of(Uj.bind(null,a),c);break}Uj(a);break;case 5:Uj(a);break;default:throw Error(y(329));}}Mj(a,O());return a.callbackNode===b?Nj.bind(null,a):null}function Ii(a,b){b&=~uj;b&=~Hi;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Vc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Lj(a){if(0!==(X&48))throw Error(y(327));Oj();if(a===U&&0!==(a.expiredLanes&W)){var b=W;var c=Tj(a,b);0!==(tj&Hi)&&(b=Uc(a,b),c=Tj(a,b))}else b=Uc(a,0),c=Tj(a,b);0!==a.tag&&2===c&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),b=Wc(a),0!==b&&(c=Tj(a,b)));if(1===c)throw c=sj,Qj(a,0),Ii(a,b),Mj(a,O()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Uj(a);Mj(a,O());return null}\nfunction Vj(){if(null!==Cj){var a=Cj;Cj=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Mj(a,O())})}ig()}function Wj(a,b){var c=X;X|=1;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function Xj(a,b){var c=X;X&=-2;X|=8;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function ni(a,b){I(rj,qj);qj|=b;tj|=b}function Ki(){qj=rj.current;H(rj)}\nfunction Qj(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,pf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Gf();break;case 3:fh();H(N);H(M);uh();break;case 5:hh(d);break;case 4:fh();break;case 13:H(P);break;case 19:H(P);break;case 10:rg(d);break;case 23:case 24:Ki()}c=c.return}U=a;Y=Tg(a.current,null);W=qj=tj=b;V=0;sj=null;uj=Hi=Dg=0}\nfunction Sj(a,b){do{var c=Y;try{qg();vh.current=Gh;if(yh){for(var d=R.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}yh=!1}xh=0;T=S=R=null;zh=!1;pj.current=null;if(null===c||null===c.return){V=1;sj=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=W;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var A=0!==(P.current&1),p=g;do{var C;if(C=13===p.tag){var x=p.memoizedState;if(null!==x)C=null!==x.dehydrated?!0:!1;else{var w=p.memoizedProps;C=void 0===w.fallback?!1:!0!==w.unstable_avoidThisFallback?!0:A?!1:!0}}if(C){var z=p.updateQueue;if(null===z){var u=new Set;u.add(l);p.updateQueue=u}else z.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var t=zg(-1,1);t.tag=2;Ag(h,t)}h.lanes|=1;break a}k=\nvoid 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Oi,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var v=Yj.bind(null,f,l,h);l.then(v,v)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((Ra(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=Li(b);if(null!==c){c.flags&=2047;Y=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===V&&(V=5)}function Uj(a){var b=eg();gg(99,dk.bind(null,a,b));return null}\nfunction dk(a,b){do Oj();while(null!==yj);if(0!==(X&48))throw Error(y(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(y(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Vc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nCj&&0===(d&24)&&Cj.has(a)&&Cj.delete(a);a===U&&(Y=U=null,W=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=X;X|=32;pj.current=null;kf=fd;g=Ne();if(Oe(g)){if(\"selectionStart\"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=(h=g.ownerDocument)&&h.defaultView||window,(l=h.getSelection&&h.getSelection())&&0!==l.rangeCount){h=l.anchorNode;f=l.anchorOffset;k=l.focusNode;l=l.focusOffset;try{h.nodeType,k.nodeType}catch(va){h=null;\nbreak a}var n=0,A=-1,p=-1,C=0,x=0,w=g,z=null;b:for(;;){for(var u;;){w!==h||0!==f&&3!==w.nodeType||(A=n+f);w!==k||0!==l&&3!==w.nodeType||(p=n+l);3===w.nodeType&&(n+=w.nodeValue.length);if(null===(u=w.firstChild))break;z=w;w=u}for(;;){if(w===g)break b;z===h&&++C===f&&(A=n);z===k&&++x===l&&(p=n);if(null!==(u=w.nextSibling))break;w=z;z=w.parentNode}w=u}h=-1===A||-1===p?null:{start:A,end:p}}else h=null;h=h||{start:0,end:0}}else h=null;lf={focusedElem:g,selectionRange:h};fd=!1;Ij=null;Jj=!1;Z=d;do try{ek()}catch(va){if(null===\nZ)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Ij=null;Z=d;do try{for(g=a;null!==Z;){var t=Z.flags;t&16&&pb(Z.stateNode,\"\");if(t&128){var q=Z.alternate;if(null!==q){var v=q.ref;null!==v&&(\"function\"===typeof v?v(null):v.current=null)}}switch(t&1038){case 2:fj(Z);Z.flags&=-3;break;case 6:fj(Z);Z.flags&=-3;ij(Z.alternate,Z);break;case 1024:Z.flags&=-1025;break;case 1028:Z.flags&=-1025;ij(Z.alternate,Z);break;case 4:ij(Z.alternate,Z);break;case 8:h=Z;cj(g,h);var J=h.alternate;dj(h);null!==\nJ&&dj(J)}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);v=lf;q=Ne();t=v.focusedElem;g=v.selectionRange;if(q!==t&&t&&t.ownerDocument&&Me(t.ownerDocument.documentElement,t)){null!==g&&Oe(t)&&(q=g.start,v=g.end,void 0===v&&(v=q),\"selectionStart\"in t?(t.selectionStart=q,t.selectionEnd=Math.min(v,t.value.length)):(v=(q=t.ownerDocument||document)&&q.defaultView||window,v.getSelection&&(v=v.getSelection(),h=t.textContent.length,J=Math.min(g.start,h),g=void 0===\ng.end?J:Math.min(g.end,h),!v.extend&&J>g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;t<q.length;t++)v=q[t],v.element.scrollLeft=v.left,v.element.scrollTop=v.top}fd=!!kf;lf=kf=null;a.current=c;Z=d;do try{for(t=a;null!==Z;){var K=Z.flags;K&36&&Yi(t,Z.alternate,Z);if(K&128){q=void 0;var Q=Z.ref;if(null!==Q){var L=Z.stateNode;switch(Z.tag){case 5:q=L;break;default:q=L}\"function\"===typeof Q?Q(q):Q.current=q}}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Z=null;$f();X=e}else a.current=c;if(xj)xj=!1,yj=a,zj=b;else for(Z=d;null!==Z;)b=\nZ.nextEffect,Z.nextEffect=null,Z.flags&8&&(K=Z,K.sibling=null,K.stateNode=null),Z=b;d=a.pendingLanes;0===d&&(Ti=null);1===d?a===Ej?Dj++:(Dj=0,Ej=a):Dj=0;c=c.stateNode;if(Mf&&\"function\"===typeof Mf.onCommitFiberRoot)try{Mf.onCommitFiberRoot(Lf,c,void 0,64===(c.current.flags&64))}catch(va){}Mj(a,O());if(Qi)throw Qi=!1,a=Ri,Ri=null,a;if(0!==(X&8))return null;ig();return null}\nfunction ek(){for(;null!==Z;){var a=Z.alternate;Jj||null===Ij||(0!==(Z.flags&8)?dc(Z,Ij)&&(Jj=!0):13===Z.tag&&mj(a,Z)&&dc(Z,Ij)&&(Jj=!0));var b=Z.flags;0!==(b&256)&&Xi(a,Z);0===(b&512)||xj||(xj=!0,hg(97,function(){Oj();return null}));Z=Z.nextEffect}}function Oj(){if(90!==zj){var a=97<zj?97:zj;zj=90;return gg(a,fk)}return!1}function $i(a,b){Aj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}function Zi(a,b){Bj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}\nfunction fk(){if(null===yj)return!1;var a=yj;yj=null;if(0!==(X&48))throw Error(y(331));var b=X;X|=32;var c=Bj;Bj=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}c=Aj;Aj=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;X=b;ig();return!0}function gk(a,b,c){b=Mi(c,b);b=Pi(a,b,1);Ag(a,b);b=Hg();a=Kj(a,1);null!==a&&($c(a,1,b),Mj(a,b))}\nfunction Wi(a,b){if(3===a.tag)gk(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){gk(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d))){a=Mi(b,a);var e=Si(c,a,1);Ag(c,e);e=Hg();c=Kj(c,1);if(null!==c)$c(c,1,e),Mj(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction Yj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=Hg();a.pingedLanes|=a.suspendedLanes&c;U===a&&(W&c)===c&&(4===V||3===V&&(W&62914560)===W&&500>O()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],th.push(f);c=Zg(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else fi(a,b,d,c),sh();b=b.child}return b;case 5:return gh(b),null===a&&\nph(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,nf(d,e)?g=null:null!==f&&nf(d,f)&&(b.flags|=16),oi(a,b),fi(a,b,g,c),b.child;case 6:return null===a&&ph(b),null;case 13:return ti(a,b,c);case 4:return eh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Yg(b,null,d,c):fi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),gi(a,b,d,e,c);case 7:return fi(a,b,b.pendingProps,c),b.child;case 8:return fi(a,b,b.pendingProps.children,\nc),b.child;case 12:return fi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(mg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=He(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!N.current){b=hi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=\nk.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=zg(-1,c&-c),l.tag=2,Ag(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);sg(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}fi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,tg(b,c),e=vg(e,\nf.unstable_observedBits),d=d(e),b.flags|=1,fi(a,b,d,c),b.child;case 14:return e=b.type,f=lg(e,b.pendingProps),f=lg(e.type,f),ii(a,b,e,f,d,c);case 15:return ki(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Ff(d)?(a=!0,Jf(b)):a=!1,tg(b,c),Mg(b,d,e),Og(b,d,e,c),qi(null,b,d,!0,a,c);case 19:return Ai(a,b,c);case 23:return mi(a,b,c);case 24:return mi(a,b,c)}throw Error(y(156,b.tag));\n};function ik(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.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function nh(a,b,c,d){return new ik(a,b,c,d)}function ji(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction hk(a){if(\"function\"===typeof a)return ji(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Aa)return 11;if(a===Da)return 14}return 2}\nfunction Tg(a,b){var c=a.alternate;null===c?(c=nh(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.nextEffect=null,c.firstEffect=null,c.lastEffect=null);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 Vg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ji(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ua:return Xg(c.children,e,f,b);case Ha:g=8;e|=16;break;case wa:g=8;e|=1;break;case xa:return a=nh(12,c,b,e|8),a.elementType=xa,a.type=xa,a.lanes=f,a;case Ba:return a=nh(13,c,b,e),a.type=Ba,a.elementType=Ba,a.lanes=f,a;case Ca:return a=nh(19,c,b,e),a.elementType=Ca,a.lanes=f,a;case Ia:return vi(c,e,f,b);case Ja:return a=nh(24,c,b,e),a.elementType=Ja,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case za:g=9;break a;case Aa:g=11;break a;case Da:g=14;break a;case Ea:g=16;d=null;break a;case Fa:g=22;break a}throw Error(y(130,null==a?a:typeof a,\"\"));}b=nh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Xg(a,b,c,d){a=nh(7,a,d,b);a.lanes=c;return a}function vi(a,b,c,d){a=nh(23,a,d,b);a.elementType=Ia;a.lanes=c;return a}function Ug(a,b,c){a=nh(6,a,null,b);a.lanes=c;return a}\nfunction Wg(a,b,c){b=nh(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 jk(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=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.mutableSourceEagerHydrationData=null}\nfunction kk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ta,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction lk(a,b,c,d){var e=b.current,f=Hg(),g=Ig(e);a:if(c){c=c._reactInternals;b:{if(Zb(c)!==c||1!==c.tag)throw Error(y(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(Ff(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(y(171));}if(1===c.tag){var k=c.type;if(Ff(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=zg(f,g);b.payload={element:a};d=void 0===d?null:d;null!==\nd&&(b.callback=d);Ag(e,b);Jg(e,g,f);return g}function mk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function nk(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function ok(a,b){nk(a,b);(a=a.alternate)&&nk(a,b)}function pk(){return null}\nfunction qk(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new jk(a,b,null!=c&&!0===c.hydrate);b=nh(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;xg(b);a[ff]=c.current;cf(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}\nqk.prototype.render=function(a){lk(a,this._internalRoot,null,null)};qk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;lk(null,a,null,function(){b[ff]=null})};function rk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction sk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new qk(a,0,b?{hydrate:!0}:void 0)}\nfunction tk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=mk(g);h.call(a)}}lk(b,g,a,e)}else{f=c._reactRootContainer=sk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=mk(g);k.call(a)}}Xj(function(){lk(b,g,a,e)})}return mk(g)}ec=function(a){if(13===a.tag){var b=Hg();Jg(a,4,b);ok(a,4)}};fc=function(a){if(13===a.tag){var b=Hg();Jg(a,67108864,b);ok(a,67108864)}};\ngc=function(a){if(13===a.tag){var b=Hg(),c=Ig(a);Jg(a,c,b);ok(a,c)}};hc=function(a,b){return b()};\nyb=function(a,b,c){switch(b){case \"input\":ab(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(y(90));Wa(d);ab(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Wj;\nHb=function(a,b,c,d,e){var f=X;X|=4;try{return gg(98,a.bind(null,b,c,d,e))}finally{X=f,0===X&&(wj(),ig())}};Ib=function(){0===(X&49)&&(Vj(),Oj())};Jb=function(a,b){var c=X;X|=2;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}};function uk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rk(b))throw Error(y(200));return kk(a,b,null,c)}var vk={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},wk={findFiberByHostInstance:wc,bundleType:0,version:\"17.0.2\",rendererPackageName:\"react-dom\"};\nvar xk={bundleType:wk.bundleType,version:wk.version,rendererPackageName:wk.rendererPackageName,rendererConfig:wk.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ra.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=cc(a);return null===a?null:a.stateNode},findFiberByHostInstance:wk.findFiberByHostInstance||\npk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var yk=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!yk.isDisabled&&yk.supportsFiber)try{Lf=yk.inject(xk),Mf=yk}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;exports.createPortal=uk;\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(y(188));throw Error(y(268,Object.keys(a)));}a=cc(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a,b){var c=X;if(0!==(c&48))return a(b);X|=1;try{if(a)return gg(99,a.bind(null,b))}finally{X=c,ig()}};exports.hydrate=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!0,c)};\nexports.render=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!rk(a))throw Error(y(40));return a._reactRootContainer?(Xj(function(){tk(null,null,a,!1,function(){a._reactRootContainer=null;a[ff]=null})}),!0):!1};exports.unstable_batchedUpdates=Wj;exports.unstable_createPortal=function(a,b){return uk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!rk(c))throw Error(y(200));if(null==a||void 0===a._reactInternals)throw Error(y(38));return tk(a,b,c,!1,d)};exports.version=\"17.0.2\";\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar sizerStyle = {\n\tposition: 'absolute',\n\ttop: 0,\n\tleft: 0,\n\tvisibility: 'hidden',\n\theight: 0,\n\toverflow: 'scroll',\n\twhiteSpace: 'pre'\n};\n\nvar INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];\n\nvar cleanInputProps = function cleanInputProps(inputProps) {\n\tINPUT_PROPS_BLACKLIST.forEach(function (field) {\n\t\treturn delete inputProps[field];\n\t});\n\treturn inputProps;\n};\n\nvar copyStyles = function copyStyles(styles, node) {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nvar isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\\/|Edge\\//.test(window.navigator.userAgent) : false;\n\nvar generateId = function generateId() {\n\t// we only need an auto-generated ID for stylesheet injection, which is only\n\t// used for IE. so if the browser is not IE, this should return undefined.\n\treturn isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;\n};\n\nvar AutosizeInput = function (_Component) {\n\t_inherits(AutosizeInput, _Component);\n\n\t_createClass(AutosizeInput, null, [{\n\t\tkey: 'getDerivedStateFromProps',\n\t\tvalue: function getDerivedStateFromProps(props, state) {\n\t\t\tvar id = props.id;\n\n\t\t\treturn id !== state.prevId ? { inputId: id || generateId(), prevId: id } : null;\n\t\t}\n\t}]);\n\n\tfunction AutosizeInput(props) {\n\t\t_classCallCheck(this, AutosizeInput);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));\n\n\t\t_this.inputRef = function (el) {\n\t\t\t_this.input = el;\n\t\t\tif (typeof _this.props.inputRef === 'function') {\n\t\t\t\t_this.props.inputRef(el);\n\t\t\t}\n\t\t};\n\n\t\t_this.placeHolderSizerRef = function (el) {\n\t\t\t_this.placeHolderSizer = el;\n\t\t};\n\n\t\t_this.sizerRef = function (el) {\n\t\t\t_this.sizer = el;\n\t\t};\n\n\t\t_this.state = {\n\t\t\tinputWidth: props.minWidth,\n\t\t\tinputId: props.id || generateId(),\n\t\t\tprevId: props.id\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AutosizeInput, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.mounted = true;\n\t\t\tthis.copyInputStyles();\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\tif (prevState.inputWidth !== this.state.inputWidth) {\n\t\t\t\tif (typeof this.props.onAutosize === 'function') {\n\t\t\t\t\tthis.props.onAutosize(this.state.inputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.mounted = false;\n\t\t}\n\t}, {\n\t\tkey: 'copyInputStyles',\n\t\tvalue: function copyInputStyles() {\n\t\t\tif (!this.mounted || !window.getComputedStyle) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar inputStyles = this.input && window.getComputedStyle(this.input);\n\t\t\tif (!inputStyles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcopyStyles(inputStyles, this.sizer);\n\t\t\tif (this.placeHolderSizer) {\n\t\t\t\tcopyStyles(inputStyles, this.placeHolderSizer);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateInputWidth',\n\t\tvalue: function updateInputWidth() {\n\t\t\tif (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar newInputWidth = void 0;\n\t\t\tif (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {\n\t\t\t\tnewInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = this.sizer.scrollWidth + 2;\n\t\t\t}\n\t\t\t// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI\n\t\t\tvar extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;\n\t\t\tnewInputWidth += extraWidth;\n\t\t\tif (newInputWidth < this.props.minWidth) {\n\t\t\t\tnewInputWidth = this.props.minWidth;\n\t\t\t}\n\t\t\tif (newInputWidth !== this.state.inputWidth) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputWidth: newInputWidth\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getInput',\n\t\tvalue: function getInput() {\n\t\t\treturn this.input;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blur',\n\t\tvalue: function blur() {\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'select',\n\t\tvalue: function select() {\n\t\t\tthis.input.select();\n\t\t}\n\t}, {\n\t\tkey: 'renderStyles',\n\t\tvalue: function renderStyles() {\n\t\t\t// this method injects styles to hide IE's clear indicator, which messes\n\t\t\t// with input size detection. the stylesheet is only injected when the\n\t\t\t// browser is IE, and can also be disabled by the `injectStyles` prop.\n\t\t\tvar injectStyles = this.props.injectStyles;\n\n\t\t\treturn isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {\n\t\t\t\t\t__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'\n\t\t\t\t} }) : null;\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {\n\t\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\t\treturn previousValue;\n\t\t\t\t}\n\t\t\t\treturn currentValue;\n\t\t\t});\n\n\t\t\tvar wrapperStyle = _extends({}, this.props.style);\n\t\t\tif (!wrapperStyle.display) wrapperStyle.display = 'inline-block';\n\n\t\t\tvar inputStyle = _extends({\n\t\t\t\tboxSizing: 'content-box',\n\t\t\t\twidth: this.state.inputWidth + 'px'\n\t\t\t}, this.props.inputStyle);\n\n\t\t\tvar inputProps = _objectWithoutProperties(this.props, []);\n\n\t\t\tcleanInputProps(inputProps);\n\t\t\tinputProps.className = this.props.inputClassName;\n\t\t\tinputProps.id = this.state.inputId;\n\t\t\tinputProps.style = inputStyle;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: this.props.className, style: wrapperStyle },\n\t\t\t\tthis.renderStyles(),\n\t\t\t\t_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.sizerRef, style: sizerStyle },\n\t\t\t\t\tsizerValue\n\t\t\t\t),\n\t\t\t\tthis.props.placeholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.placeHolderSizerRef, style: sizerStyle },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AutosizeInput;\n}(_react.Component);\n\nAutosizeInput.propTypes = {\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tdefaultValue: _propTypes2.default.any, // default field value\n\textraWidth: _propTypes2.default.oneOfType([// additional width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tid: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots\n\tinjectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true\n\tinputClassName: _propTypes2.default.string, // className for the input element\n\tinputRef: _propTypes2.default.func, // ref callback for the input element\n\tinputStyle: _propTypes2.default.object, // css styles for the input element\n\tminWidth: _propTypes2.default.oneOfType([// minimum width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tonAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}\n\tonChange: _propTypes2.default.func, // onChange handler: function(event) {}\n\tplaceholder: _propTypes2.default.string, // placeholder text\n\tplaceholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder\n\tstyle: _propTypes2.default.object, // css styles for the outer element\n\tvalue: _propTypes2.default.any // field value\n};\nAutosizeInput.defaultProps = {\n\tminWidth: 1,\n\tinjectStyles: true\n};\n\nexports.default = AutosizeInput;","/** @license React v17.0.2\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';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.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:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\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=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};function C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;F.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!I.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:n,type:a,key:k,ref:h,props:d,_owner:G.current}}\nfunction K(a,b){return{$$typeof:n,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function L(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===n}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var M=/\\/+/g;function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction O(a,b,c,e,d){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case n:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+N(h,0):e,Array.isArray(d)?(c=\"\",null!=a&&(c=a.replace(M,\"$&/\")+\"/\"),O(d,b,c,\"\",function(a){return a})):null!=d&&(L(d)&&(d=K(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(M,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(Array.isArray(a))for(var g=\n0;g<a.length;g++){k=a[g];var f=e+N(k,g);h+=O(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+N(k,g++),h+=O(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function P(a,b,c){if(null==a)return a;var e=[],d=0;O(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction Q(a){if(-1===a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}var R={current:null};function S(){var a=R.current;if(null===a)throw Error(z(321));return a}var T={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G,IsSomeRendererActing:{current:!1},assign:l};\nexports.Children={map:P,forEach:function(a,b,c){P(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;P(a,function(){b++});return b},toArray:function(a){return P(a,function(a){return a})||[]},only:function(a){if(!L(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!I.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var m=0;m<f;m++)g[m]=arguments[m+2];e.children=g}return{$$typeof:n,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:r,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=J;exports.createFactory=function(a){var b=J.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=L;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:Q}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return S().useCallback(a,b)};exports.useContext=function(a,b){return S().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return S().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return S().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S().useMemo(a,b)};exports.useReducer=function(a,b,c){return S().useReducer(a,b,c)};exports.useRef=function(a){return S().useRef(a)};exports.useState=function(a){return S().useState(a)};exports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\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","/** @license React v0.20.2\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';var f,g,h,k;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}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n","// Copyright 2019-2023 @polkadot/wasm-crypto-wasm authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n// Generated as part of the build, do not edit\n\nexports.lenIn = 171008;\n\nexports.lenOut = 339468;\n\nexports.bytes = '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';\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"4e4170d1\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"staking-platform:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkstaking_platform\"] = self[\"webpackChunkstaking_platform\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import { Reducer } from 'react'\n\nexport type FavoriteActions =\n  | { type: 'favorize'; id: string }\n  | { type: 'unfavorize'; id: string }\n\nexport type DenominationActions =\n  | { type: 'increaseDenomination' }\n  | { type: 'decreaseDenomination' }\n\nexport type StoredStateActions = FavoriteActions | DenominationActions\n\nexport const favoriteReducer: Reducer<string[], StoredStateActions> = (\n  state,\n  action\n) => {\n  switch (action.type) {\n    case 'favorize':\n      return [...state, action.id]\n    case 'unfavorize':\n      return state.filter((id) => id !== action.id)\n    default:\n      return state\n  }\n}\n\nexport const denominationReducer: Reducer<number, StoredStateActions> = (\n  state,\n  action\n) => {\n  switch (action.type) {\n    case 'increaseDenomination':\n      return state * 2\n    case 'decreaseDenomination':\n      return state / 2\n    default:\n      return state\n  }\n}\n","import React, { Dispatch, useEffect, useReducer } from 'react'\nimport {\n  favoriteReducer,\n  denominationReducer,\n  StoredStateActions,\n} from '../state/storedReducers'\n\nexport interface State {\n  favorites: string[]\n  denomination: number\n}\n\nexport const StoredStateContext = React.createContext<{\n  storedState: State\n  dispatch: Dispatch<StoredStateActions>\n}>({\n  storedState: { favorites: [], denomination: 64 },\n  dispatch: () => null,\n})\n\nconst mainReducer = (\n  { favorites, denomination }: State,\n  action: StoredStateActions\n) => ({\n  favorites: favoriteReducer(favorites, action),\n  denomination: denominationReducer(denomination, action),\n})\n\nexport const StoredStateProvider: React.FC = ({ children }) => {\n  const [storedState, dispatch] = useReducer(\n    mainReducer,\n    {\n      favorites: [],\n      denomination: 64,\n    },\n    (initialArg) => {\n      try {\n        const item = window.localStorage.getItem('staking-state')\n        const data = item ? JSON.parse(item) : initialArg\n        if (!data.denomination) data.denomination = 64\n        return data\n      } catch (err) {\n        console.log(err)\n        return initialArg\n      }\n    }\n  )\n\n  useEffect(() => {\n    try {\n      window.localStorage.setItem('staking-state', JSON.stringify(storedState))\n    } catch (err) {\n      console.log(err)\n    }\n  }, [storedState])\n\n  return (\n    <StoredStateContext.Provider value={{ storedState, dispatch }}>\n      {children}\n    </StoredStateContext.Provider>\n  )\n}\n","import { Reducer } from 'react'\nimport { Account } from '../types'\n\nexport type PausedAction = { type: 'refreshPaused'; refreshPaused: boolean }\n\nexport type ConnectionActions =\n  | { type: 'connected' }\n  | { type: 'disconnected' }\n  | { type: 'error'; err: any }\n\nexport type LoadingDataActions =\n  | { type: 'loading' }\n  | { type: 'unavailable' }\n  | { type: 'available' }\n\nexport type AccountActions =\n  | { type: 'selectAccount'; account: Account }\n  | { type: 'unselectAccount' }\n\nexport type ErrorActions =\n  | {\n      type: 'handleError'\n      error: any\n    }\n  | {\n      type: 'resetError'\n    }\n\nexport type TransactionActions =\n  | {\n      type: 'needsSignature'\n    }\n  | {\n      type: 'transactionInProgress'\n    }\n  | {\n      type: 'transactionFinished'\n      txHash: string\n    }\n  | {\n      type: 'resetTransaction'\n    }\n\nexport type TermsActions = { type: 'acceptTerms' }\n\nexport type Actions =\n  | PausedAction\n  | ConnectionActions\n  | LoadingDataActions\n  | AccountActions\n  | ErrorActions\n  | TransactionActions\n  | TermsActions\n\nexport const pauseReducer: Reducer<boolean, Actions> = (state, action) => {\n  switch (action.type) {\n    case 'refreshPaused':\n      return !action.refreshPaused\n    default:\n      return state\n  }\n}\n\nexport const accountReducer: Reducer<Account | undefined, Actions> = (\n  state,\n  action\n) => {\n  switch (action.type) {\n    case 'selectAccount':\n      return { ...action.account }\n    case 'unselectAccount':\n      return undefined\n    default:\n      return state\n  }\n}\n\nexport type ErrorState = {\n  hasError: boolean\n  error: any\n}\n\nexport const errorReducer: Reducer<ErrorState, Actions> = (state, action) => {\n  switch (action.type) {\n    case 'handleError':\n      return { hasError: true, error: action.error }\n    case 'resetError':\n      return { hasError: false, error: undefined }\n    default:\n      return state\n  }\n}\n\nexport type ConnectionState = {\n  status: 'connected' | 'disconnected' | 'error'\n  err?: any\n}\n\nexport const connectionReducer: Reducer<ConnectionState, Actions> = (\n  prevState,\n  action\n) => {\n  switch (action.type) {\n    case 'connected':\n      return { status: 'connected' }\n    case 'disconnected':\n      return { status: 'disconnected' }\n    case 'error':\n      return { status: 'error', err: action.err }\n    default:\n      return prevState\n  }\n}\n\nexport type LoadingDataState = 'loading' | 'available' | 'unavailable'\n\nexport const loadingDataReducer: Reducer<LoadingDataState, Actions> = (\n  prevState,\n  action\n) => {\n  switch (action.type) {\n    case 'unavailable':\n      return 'unavailable'\n    case 'loading':\n      return 'loading'\n    case 'available':\n      return 'available'\n    default:\n      return prevState\n  }\n}\n\nexport type TransactionState = {\n  isInProgress: boolean\n  needsSignature: boolean\n  txHash?: string\n}\n\nexport const transactionReducer: Reducer<TransactionState, Actions> = (\n  state,\n  action\n) => {\n  switch (action.type) {\n    case 'needsSignature': {\n      return { isInProgress: false, needsSignature: true }\n    }\n    case 'transactionInProgress':\n      return {\n        isInProgress: true,\n        needsSignature: false,\n      }\n    case 'transactionFinished':\n      return {\n        txHash: action.txHash,\n        isInProgress: false,\n        needsSignature: false,\n      }\n    case 'resetTransaction':\n      return {\n        isInProgress: false,\n        needsSignature: false,\n      }\n    default:\n      return state\n  }\n}\n\nexport const termsReducer: Reducer<boolean, Actions> = (state, action) => {\n  switch (action.type) {\n    case 'acceptTerms':\n      return true\n    default:\n      return state\n  }\n}\n","import React, { Dispatch, useReducer } from 'react'\nimport {\n  accountReducer,\n  pauseReducer,\n  errorReducer,\n  connectionReducer,\n  ConnectionState,\n  Actions,\n  ErrorState,\n  TransactionState,\n  transactionReducer,\n  termsReducer,\n  LoadingDataState,\n  loadingDataReducer,\n} from '../state/reducers'\nimport { Account } from '../types'\n\nexport interface State {\n  refreshPaused: boolean\n  account?: Account\n  error: ErrorState\n  connection: ConnectionState\n  loadingData: LoadingDataState\n  transaction: TransactionState\n  termsAccepted: boolean\n}\n\nexport const StateContext = React.createContext<{\n  state: State\n  dispatch: Dispatch<Actions>\n}>({\n  state: {\n    refreshPaused: false,\n    account: undefined,\n    error: { error: undefined, hasError: false },\n    connection: { status: 'disconnected' },\n    loadingData: 'unavailable',\n    transaction: {\n      isInProgress: false,\n      needsSignature: false,\n    },\n    termsAccepted: false,\n  },\n  dispatch: () => null,\n})\n\nconst mainReducer = (\n  {\n    refreshPaused,\n    account,\n    error,\n    connection,\n    loadingData,\n    transaction,\n    termsAccepted,\n  }: State,\n  action: Actions\n) => ({\n  refreshPaused: pauseReducer(refreshPaused, action),\n  account: accountReducer(account, action),\n  error: errorReducer(error, action),\n  connection: connectionReducer(connection, action),\n  loadingData: loadingDataReducer(loadingData, action),\n  transaction: transactionReducer(transaction, action),\n  termsAccepted: termsReducer(termsAccepted, action),\n})\n\nexport const StateProvider: React.FC = ({ children }) => {\n  const [state, dispatch] = useReducer(mainReducer, {\n    refreshPaused: false,\n    account: undefined,\n    error: { error: undefined, hasError: false },\n    connection: { status: 'disconnected' },\n    loadingData: 'unavailable',\n    transaction: {\n      isInProgress: false,\n      needsSignature: false,\n    },\n    termsAccepted: false,\n  })\n\n  return (\n    <StateContext.Provider value={{ state, dispatch }}>\n      {children}\n    </StateContext.Provider>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"dashboard\":\"Dashboard_dashboard__B0hE7\",\"accounts\":\"Dashboard_accounts__oKapY\",\"accountsContainer\":\"Dashboard_accountsContainer__Bqn2t\",\"pauseOverlay\":\"Dashboard_pauseOverlay__lQugE\",\"scaleContainer\":\"Dashboard_scaleContainer__NmsBF\"};","// extracted by mini-css-extract-plugin\nexport default {\"accounts\":\"Accounts_accounts__gjN9A\",\"account\":\"Accounts_account__uGRsy\"};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"TokenBar_container__+ChMy\",\"containerDown\":\"TokenBar_containerDown__66p73\",\"item\":\"TokenBar_item__A4E4j\",\"staked\":\"TokenBar_staked__Zo-uC\",\"separator\":\"TokenBar_separator__ZjWYN\",\"stakeable\":\"TokenBar_stakeable__js4qr\",\"percentage\":\"TokenBar_percentage__f7f+y\"};","import { Perquintill } from '@polkadot/types/interfaces'\nimport type { StakingRates as StakingRatesChain } from '@kiltprotocol/augment-api'\n\nexport function getPercent(percentageValue: number, secondValue: number) {\n  const total = percentageValue + secondValue\n  const percent = (percentageValue / total) * 100\n  return percent.toFixed(1)\n}\n\n// Rounds 10^18 to 3 digits after comma and transforms into percent, e.g. 10^18 = 100\nfunction perquintillToPercentage(num: Perquintill) {\n  const precision = 10n ** 5n\n  const perquintill = 10n ** 18n\n  const percent = num.toBigInt() * precision * 100n\n  const rounded =\n    Math.round(Number(percent) / Number(perquintill)) / Number(precision)\n  return rounded\n}\n\nexport function stakingRatesToHuman(rates: StakingRatesChain) {\n  return {\n    collatorRewardRate: perquintillToPercentage(rates.collatorRewardRate),\n    collatorStakingRate: perquintillToPercentage(rates.collatorStakingRate),\n    delegatorRewardRate: perquintillToPercentage(rates.delegatorRewardRate),\n    delegatorStakingRate: perquintillToPercentage(rates.delegatorStakingRate),\n  }\n}\n","import React, { useContext } from 'react'\nimport styles from './TokenBar.module.css'\nimport cx from 'classnames'\nimport { StoredStateContext } from '../../utils/StoredStateContext'\nimport { getPercent } from '../../utils/stakePercentage'\n\ninterface BarItemProps {\n  style: string\n  amount: number\n  percentage: string\n}\nconst BarItem: React.FC<BarItemProps> = ({ style, amount, percentage }) => {\n  const {\n    storedState: { denomination },\n  } = useContext(StoredStateContext)\n  const barWidth = amount / denomination\n  return (\n    <div\n      className={cx(styles.item, style)}\n      style={{ width: percentage ? percentage + '%' : barWidth }}\n    ></div>\n  )\n}\n\nexport interface TokenBarProps {\n  staked: number\n  stakeable: number\n  down?: boolean\n  percentage?: boolean\n}\nexport const TokenBar: React.FC<TokenBarProps> = ({\n  staked,\n  stakeable,\n  down = false,\n  percentage = false,\n}) => {\n  const {\n    storedState: { denomination },\n  } = useContext(StoredStateContext)\n\n  const total = staked + stakeable\n\n  const has_staked = staked > 0\n  const has_stakeable = stakeable > 0\n\n  let container_width = total / denomination\n  container_width =\n    has_staked && has_stakeable ? container_width + 1 : container_width\n\n  const stakedPercentage = getPercent(staked, stakeable)\n  const stakeablePercentage = getPercent(stakeable, staked)\n\n  return (\n    <div\n      className={cx(styles.container, {\n        [styles.containerDown]: down,\n        [styles.percentage]: percentage,\n      })}\n      style={{ width: percentage ? '100%' : container_width }}\n    >\n      {has_staked && (\n        <BarItem\n          style={styles.staked}\n          amount={staked}\n          percentage={stakedPercentage}\n        />\n      )}\n      {has_staked && has_stakeable && (\n        <div className={cx(styles.item, styles.separator)} />\n      )}\n      {has_stakeable && (\n        <BarItem\n          style={styles.stakeable}\n          amount={stakeable}\n          percentage={stakeablePercentage}\n        />\n      )}\n    </div>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"meta\":\"Meta_meta__uovRm\",\"metaDown\":\"Meta_metaDown__Rb98W\",\"identicon\":\"Meta_identicon__4zjZ3\",\"identiconDown\":\"Meta_identiconDown__SuLte\",\"unusedIdenticon\":\"Meta_unusedIdenticon__CRIKr\",\"line\":\"Meta_line__8snXO\",\"lineDown\":\"Meta_lineDown__ZEAQN\",\"unusedInfo\":\"Meta_unusedInfo__5g3fy\"};","function number(n: number) {\n  if (!Number.isSafeInteger(n) || n < 0) throw new Error(`Wrong positive integer: ${n}`);\n}\n\nfunction bool(b: boolean) {\n  if (typeof b !== 'boolean') throw new Error(`Expected boolean, not ${b}`);\n}\n\n// copied from utils\nfunction isBytes(a: unknown): a is Uint8Array {\n  return (\n    a instanceof Uint8Array ||\n    (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n  );\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n  if (!isBytes(b)) throw new Error('Expected Uint8Array');\n  if (lengths.length > 0 && !lengths.includes(b.length))\n    throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n  (data: Uint8Array): Uint8Array;\n  blockLen: number;\n  outputLen: number;\n  create: any;\n};\nfunction hash(hash: Hash) {\n  if (typeof hash !== 'function' || typeof hash.create !== 'function')\n    throw new Error('Hash should be wrapped by utils.wrapConstructor');\n  number(hash.outputLen);\n  number(hash.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n  if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n  if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\n  bytes(out);\n  const min = instance.outputLen;\n  if (out.length < min) {\n    throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n  }\n}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n","// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// See utils.ts for details.\ndeclare const globalThis: Record<string, any> | undefined;\nexport const crypto =\n  typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n  Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n  new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\nfunction isBytes(a: unknown): a is Uint8Array {\n  return (\n    a instanceof Uint8Array ||\n    (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n  );\n}\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n  new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\n// Other libraries would silently corrupt the data instead of throwing an error,\n// when they don't support it.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE) throw new Error('Non little-endian hardware is not supported');\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n  i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n  if (!isBytes(bytes)) throw new Error('Uint8Array expected');\n  // pre-caching improves the speed 6x\n  let hex = '';\n  for (let i = 0; i < bytes.length; i++) {\n    hex += hexes[bytes[i]];\n  }\n  return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n  if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n  if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n  if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n  return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n  if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n  const hl = hex.length;\n  const al = hl / 2;\n  if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n  const array = new Uint8Array(al);\n  for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n    const n1 = asciiToBase16(hex.charCodeAt(hi));\n    const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n    if (n1 === undefined || n2 === undefined) {\n      const char = hex[hi] + hex[hi + 1];\n      throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n    }\n    array[ai] = n1 * 16 + n2;\n  }\n  return array;\n}\n\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => {};\n\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\n  let ts = Date.now();\n  for (let i = 0; i < iters; i++) {\n    cb(i);\n    // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n    const diff = Date.now() - ts;\n    if (diff >= 0 && diff < tick) continue;\n    await nextTick();\n    ts += diff;\n  }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n  if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n  return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n  if (typeof data === 'string') data = utf8ToBytes(data);\n  if (!isBytes(data)) throw new Error(`expected Uint8Array, got ${typeof data}`);\n  return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n  let sum = 0;\n  for (let i = 0; i < arrays.length; i++) {\n    const a = arrays[i];\n    if (!isBytes(a)) throw new Error('Uint8Array expected');\n    sum += a.length;\n  }\n  const res = new Uint8Array(sum);\n  for (let i = 0, pad = 0; i < arrays.length; i++) {\n    const a = arrays[i];\n    res.set(a, pad);\n    pad += a.length;\n  }\n  return res;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash<T extends Hash<T>> {\n  abstract blockLen: number; // Bytes per block\n  abstract outputLen: number; // Bytes in output\n  abstract update(buf: Input): this;\n  // Writes digest into buf\n  abstract digestInto(buf: Uint8Array): void;\n  abstract digest(): Uint8Array;\n  /**\n   * Resets internal state. Makes Hash instance unusable.\n   * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n   * by user, they will need to manually call `destroy()` when zeroing is necessary.\n   */\n  abstract destroy(): void;\n  /**\n   * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n   * when no options are passed.\n   * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n   * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n   * There are no guarantees for clean-up because it's impossible in JS.\n   */\n  abstract _cloneInto(to?: T): T;\n  // Safe version that clones internal state\n  clone(): T {\n    return this._cloneInto();\n  }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF<T extends Hash<T>> = Hash<T> & {\n  xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n  xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts<T1 extends EmptyObj, T2 extends EmptyObj>(\n  defaults: T1,\n  opts?: T2\n): T1 & T2 {\n  if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n    throw new Error('Options should be object or undefined');\n  const merged = Object.assign(defaults, opts);\n  return merged as T1 & T2;\n}\n\nexport type CHash = ReturnType<typeof wrapConstructor>;\n\nexport function wrapConstructor<T extends Hash<T>>(hashCons: () => Hash<T>) {\n  const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n  const tmp = hashCons();\n  hashC.outputLen = tmp.outputLen;\n  hashC.blockLen = tmp.blockLen;\n  hashC.create = () => hashCons();\n  return hashC;\n}\n\nexport function wrapConstructorWithOpts<H extends Hash<H>, T extends Object>(\n  hashCons: (opts?: T) => Hash<H>\n) {\n  const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n  const tmp = hashCons({} as T);\n  hashC.outputLen = tmp.outputLen;\n  hashC.blockLen = tmp.blockLen;\n  hashC.create = (opts: T) => hashCons(opts);\n  return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts<H extends HashXOF<H>, T extends Object>(\n  hashCons: (opts?: T) => HashXOF<H>\n) {\n  const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n  const tmp = hashCons({} as T);\n  hashC.outputLen = tmp.outputLen;\n  hashC.blockLen = tmp.blockLen;\n  hashC.create = (opts: T) => hashCons(opts);\n  return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n  if (crypto && typeof crypto.getRandomValues === 'function') {\n    return crypto.getRandomValues(new Uint8Array(bytesLength));\n  }\n  throw new Error('crypto.getRandomValues must be defined');\n}\n","import { number, exists, output } from './_assert.js';\nimport { Hash, Input, toBytes, u32 } from './utils.js';\n\n// Blake is based on ChaCha permutation.\n\n// For BLAKE2b, the two extra permutations for rounds 10 and 11 are SIGMA[10..11] = SIGMA[0..1].\n// prettier-ignore\nexport const SIGMA = /* @__PURE__ */ new Uint8Array([\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n  14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n  11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,\n  7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,\n  9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,\n  2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,\n  12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,\n  13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,\n  6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,\n  10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n  14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n]);\n\nexport type BlakeOpts = {\n  dkLen?: number;\n  key?: Input;\n  salt?: Input;\n  personalization?: Input;\n};\n\nexport abstract class BLAKE2<T extends BLAKE2<T>> extends Hash<T> {\n  protected abstract compress(msg: Uint32Array, offset: number, isLast: boolean): void;\n  protected abstract get(): number[];\n  protected abstract set(...args: number[]): void;\n  abstract destroy(): void;\n  protected buffer: Uint8Array;\n  protected buffer32: Uint32Array;\n  protected length: number = 0;\n  protected pos: number = 0;\n  protected finished = false;\n  protected destroyed = false;\n\n  constructor(\n    readonly blockLen: number,\n    public outputLen: number,\n    opts: BlakeOpts = {},\n    keyLen: number,\n    saltLen: number,\n    persLen: number\n  ) {\n    super();\n    number(blockLen);\n    number(outputLen);\n    number(keyLen);\n    if (outputLen < 0 || outputLen > keyLen) throw new Error('outputLen bigger than keyLen');\n    if (opts.key !== undefined && (opts.key.length < 1 || opts.key.length > keyLen))\n      throw new Error(`key must be up 1..${keyLen} byte long or undefined`);\n    if (opts.salt !== undefined && opts.salt.length !== saltLen)\n      throw new Error(`salt must be ${saltLen} byte long or undefined`);\n    if (opts.personalization !== undefined && opts.personalization.length !== persLen)\n      throw new Error(`personalization must be ${persLen} byte long or undefined`);\n    this.buffer32 = u32((this.buffer = new Uint8Array(blockLen)));\n  }\n  update(data: Input) {\n    exists(this);\n    // Main difference with other hashes: there is flag for last block,\n    // so we cannot process current block before we know that there\n    // is the next one. This significantly complicates logic and reduces ability\n    // to do zero-copy processing\n    const { blockLen, buffer, buffer32 } = this;\n    data = toBytes(data);\n    const len = data.length;\n    const offset = data.byteOffset;\n    const buf = data.buffer;\n    for (let pos = 0; pos < len; ) {\n      // If buffer is full and we still have input (don't process last block, same as blake2s)\n      if (this.pos === blockLen) {\n        this.compress(buffer32, 0, false);\n        this.pos = 0;\n      }\n      const take = Math.min(blockLen - this.pos, len - pos);\n      const dataOffset = offset + pos;\n      // full block && aligned to 4 bytes && not last in input\n      if (take === blockLen && !(dataOffset % 4) && pos + take < len) {\n        const data32 = new Uint32Array(buf, dataOffset, Math.floor((len - pos) / 4));\n        for (let pos32 = 0; pos + blockLen < len; pos32 += buffer32.length, pos += blockLen) {\n          this.length += blockLen;\n          this.compress(data32, pos32, false);\n        }\n        continue;\n      }\n      buffer.set(data.subarray(pos, pos + take), this.pos);\n      this.pos += take;\n      this.length += take;\n      pos += take;\n    }\n    return this;\n  }\n  digestInto(out: Uint8Array) {\n    exists(this);\n    output(out, this);\n    const { pos, buffer32 } = this;\n    this.finished = true;\n    // Padding\n    this.buffer.subarray(pos).fill(0);\n    this.compress(buffer32, 0, true);\n    const out32 = u32(out);\n    this.get().forEach((v, i) => (out32[i] = v));\n  }\n  digest() {\n    const { buffer, outputLen } = this;\n    this.digestInto(buffer);\n    const res = buffer.slice(0, outputLen);\n    this.destroy();\n    return res;\n  }\n  _cloneInto(to?: T): T {\n    const { buffer, length, finished, destroyed, outputLen, pos } = this;\n    to ||= new (this.constructor as any)({ dkLen: outputLen }) as T;\n    to.set(...this.get());\n    to.length = length;\n    to.finished = finished;\n    to.destroyed = destroyed;\n    to.outputLen = outputLen;\n    to.buffer.set(buffer);\n    to.pos = pos;\n    return to;\n  }\n}\n","const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n: bigint, le = false) {\n  if (le) return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n  return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\n\nfunction split(lst: bigint[], le = false) {\n  let Ah = new Uint32Array(lst.length);\n  let Al = new Uint32Array(lst.length);\n  for (let i = 0; i < lst.length; i++) {\n    const { h, l } = fromBig(lst[i], le);\n    [Ah[i], Al[i]] = [h, l];\n  }\n  return [Ah, Al];\n}\n\nconst toBig = (h: number, l: number) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h: number, _l: number, s: number) => h >>> s;\nconst shrSL = (h: number, l: number, s: number) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h: number, l: number, s: number) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h: number, l: number, s: number) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h: number, l: number, s: number) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h: number, l: number, s: number) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h: number, l: number) => l;\nconst rotr32L = (h: number, _l: number) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h: number, l: number, s: number) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h: number, l: number, s: number) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h: number, l: number, s: number) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h: number, l: number, s: number) => (h << (s - 32)) | (l >>> (64 - s));\n\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah: number, Al: number, Bh: number, Bl: number) {\n  const l = (Al >>> 0) + (Bl >>> 0);\n  return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al: number, Bl: number, Cl: number) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low: number, Ah: number, Bh: number, Ch: number) =>\n  (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al: number, Bl: number, Cl: number, Dl: number) =>\n  (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number) =>\n  (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al: number, Bl: number, Cl: number, Dl: number, El: number) =>\n  (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number) =>\n  (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n\n// prettier-ignore\nexport {\n  fromBig, split, toBig,\n  shrSH, shrSL,\n  rotrSH, rotrSL, rotrBH, rotrBL,\n  rotr32H, rotr32L,\n  rotlSH, rotlSL, rotlBH, rotlBL,\n  add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\n// prettier-ignore\nconst u64 = {\n  fromBig, split, toBig,\n  shrSH, shrSL,\n  rotrSH, rotrSL, rotrBH, rotrBL,\n  rotr32H, rotr32L,\n  rotlSH, rotlSL, rotlBH, rotlBL,\n  add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n","import { BLAKE2, BlakeOpts, SIGMA } from './_blake2.js';\nimport u64 from './_u64.js';\nimport { toBytes, u32, wrapConstructorWithOpts } from './utils.js';\n\n// Same as SHA-512 but LE\n// prettier-ignore\nconst IV = /* @__PURE__ */ new Uint32Array([\n  0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372, 0x5f1d36f1, 0xa54ff53a,\n  0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c, 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19\n]);\n// Temporary buffer\nconst BUF = /* @__PURE__ */ new Uint32Array(32);\n\n// Mixing function G splitted in two halfs\nfunction G1(a: number, b: number, c: number, d: number, msg: Uint32Array, x: number) {\n  // NOTE: V is LE here\n  const Xl = msg[x], Xh = msg[x + 1]; // prettier-ignore\n  let Al = BUF[2 * a], Ah = BUF[2 * a + 1]; // prettier-ignore\n  let Bl = BUF[2 * b], Bh = BUF[2 * b + 1]; // prettier-ignore\n  let Cl = BUF[2 * c], Ch = BUF[2 * c + 1]; // prettier-ignore\n  let Dl = BUF[2 * d], Dh = BUF[2 * d + 1]; // prettier-ignore\n  // v[a] = (v[a] + v[b] + x) | 0;\n  let ll = u64.add3L(Al, Bl, Xl);\n  Ah = u64.add3H(ll, Ah, Bh, Xh);\n  Al = ll | 0;\n  // v[d] = rotr(v[d] ^ v[a], 32)\n  ({ Dh, Dl } = { Dh: Dh ^ Ah, Dl: Dl ^ Al });\n  ({ Dh, Dl } = { Dh: u64.rotr32H(Dh, Dl), Dl: u64.rotr32L(Dh, Dl) });\n  // v[c] = (v[c] + v[d]) | 0;\n  ({ h: Ch, l: Cl } = u64.add(Ch, Cl, Dh, Dl));\n  // v[b] = rotr(v[b] ^ v[c], 24)\n  ({ Bh, Bl } = { Bh: Bh ^ Ch, Bl: Bl ^ Cl });\n  ({ Bh, Bl } = { Bh: u64.rotrSH(Bh, Bl, 24), Bl: u64.rotrSL(Bh, Bl, 24) });\n  (BUF[2 * a] = Al), (BUF[2 * a + 1] = Ah);\n  (BUF[2 * b] = Bl), (BUF[2 * b + 1] = Bh);\n  (BUF[2 * c] = Cl), (BUF[2 * c + 1] = Ch);\n  (BUF[2 * d] = Dl), (BUF[2 * d + 1] = Dh);\n}\n\nfunction G2(a: number, b: number, c: number, d: number, msg: Uint32Array, x: number) {\n  // NOTE: V is LE here\n  const Xl = msg[x], Xh = msg[x + 1]; // prettier-ignore\n  let Al = BUF[2 * a], Ah = BUF[2 * a + 1]; // prettier-ignore\n  let Bl = BUF[2 * b], Bh = BUF[2 * b + 1]; // prettier-ignore\n  let Cl = BUF[2 * c], Ch = BUF[2 * c + 1]; // prettier-ignore\n  let Dl = BUF[2 * d], Dh = BUF[2 * d + 1]; // prettier-ignore\n  // v[a] = (v[a] + v[b] + x) | 0;\n  let ll = u64.add3L(Al, Bl, Xl);\n  Ah = u64.add3H(ll, Ah, Bh, Xh);\n  Al = ll | 0;\n  // v[d] = rotr(v[d] ^ v[a], 16)\n  ({ Dh, Dl } = { Dh: Dh ^ Ah, Dl: Dl ^ Al });\n  ({ Dh, Dl } = { Dh: u64.rotrSH(Dh, Dl, 16), Dl: u64.rotrSL(Dh, Dl, 16) });\n  // v[c] = (v[c] + v[d]) | 0;\n  ({ h: Ch, l: Cl } = u64.add(Ch, Cl, Dh, Dl));\n  // v[b] = rotr(v[b] ^ v[c], 63)\n  ({ Bh, Bl } = { Bh: Bh ^ Ch, Bl: Bl ^ Cl });\n  ({ Bh, Bl } = { Bh: u64.rotrBH(Bh, Bl, 63), Bl: u64.rotrBL(Bh, Bl, 63) });\n  (BUF[2 * a] = Al), (BUF[2 * a + 1] = Ah);\n  (BUF[2 * b] = Bl), (BUF[2 * b + 1] = Bh);\n  (BUF[2 * c] = Cl), (BUF[2 * c + 1] = Ch);\n  (BUF[2 * d] = Dl), (BUF[2 * d + 1] = Dh);\n}\n\nclass BLAKE2b extends BLAKE2<BLAKE2b> {\n  // Same as SHA-512, but LE\n  private v0l = IV[0] | 0;\n  private v0h = IV[1] | 0;\n  private v1l = IV[2] | 0;\n  private v1h = IV[3] | 0;\n  private v2l = IV[4] | 0;\n  private v2h = IV[5] | 0;\n  private v3l = IV[6] | 0;\n  private v3h = IV[7] | 0;\n  private v4l = IV[8] | 0;\n  private v4h = IV[9] | 0;\n  private v5l = IV[10] | 0;\n  private v5h = IV[11] | 0;\n  private v6l = IV[12] | 0;\n  private v6h = IV[13] | 0;\n  private v7l = IV[14] | 0;\n  private v7h = IV[15] | 0;\n\n  constructor(opts: BlakeOpts = {}) {\n    super(128, opts.dkLen === undefined ? 64 : opts.dkLen, opts, 64, 16, 16);\n    const keyLength = opts.key ? opts.key.length : 0;\n    this.v0l ^= this.outputLen | (keyLength << 8) | (0x01 << 16) | (0x01 << 24);\n    if (opts.salt) {\n      const salt = u32(toBytes(opts.salt));\n      this.v4l ^= salt[0];\n      this.v4h ^= salt[1];\n      this.v5l ^= salt[2];\n      this.v5h ^= salt[3];\n    }\n    if (opts.personalization) {\n      const pers = u32(toBytes(opts.personalization));\n      this.v6l ^= pers[0];\n      this.v6h ^= pers[1];\n      this.v7l ^= pers[2];\n      this.v7h ^= pers[3];\n    }\n    if (opts.key) {\n      // Pad to blockLen and update\n      const tmp = new Uint8Array(this.blockLen);\n      tmp.set(toBytes(opts.key));\n      this.update(tmp);\n    }\n  }\n  // prettier-ignore\n  protected get(): [\n    number, number, number, number, number, number, number, number,\n    number, number, number, number, number, number, number, number\n  ] {\n    let {v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h} = this;\n    return [v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h];\n  }\n  // prettier-ignore\n  protected set(\n    v0l: number, v0h: number, v1l: number, v1h: number,\n    v2l: number, v2h: number, v3l: number, v3h: number,\n    v4l: number, v4h: number, v5l: number, v5h: number,\n    v6l: number, v6h: number, v7l: number, v7h: number\n  ) {\n    this.v0l = v0l | 0;\n    this.v0h = v0h | 0;\n    this.v1l = v1l | 0;\n    this.v1h = v1h | 0;\n    this.v2l = v2l | 0;\n    this.v2h = v2h | 0;\n    this.v3l = v3l | 0;\n    this.v3h = v3h | 0;\n    this.v4l = v4l | 0;\n    this.v4h = v4h | 0;\n    this.v5l = v5l | 0;\n    this.v5h = v5h | 0;\n    this.v6l = v6l | 0;\n    this.v6h = v6h | 0;\n    this.v7l = v7l | 0;\n    this.v7h = v7h | 0;\n  }\n  protected compress(msg: Uint32Array, offset: number, isLast: boolean) {\n    this.get().forEach((v, i) => (BUF[i] = v)); // First half from state.\n    BUF.set(IV, 16); // Second half from IV.\n    let { h, l } = u64.fromBig(BigInt(this.length));\n    BUF[24] = IV[8] ^ l; // Low word of the offset.\n    BUF[25] = IV[9] ^ h; // High word.\n    // Invert all bits for last block\n    if (isLast) {\n      BUF[28] = ~BUF[28];\n      BUF[29] = ~BUF[29];\n    }\n    let j = 0;\n    const s = SIGMA;\n    for (let i = 0; i < 12; i++) {\n      G1(0, 4, 8, 12, msg, offset + 2 * s[j++]);\n      G2(0, 4, 8, 12, msg, offset + 2 * s[j++]);\n      G1(1, 5, 9, 13, msg, offset + 2 * s[j++]);\n      G2(1, 5, 9, 13, msg, offset + 2 * s[j++]);\n      G1(2, 6, 10, 14, msg, offset + 2 * s[j++]);\n      G2(2, 6, 10, 14, msg, offset + 2 * s[j++]);\n      G1(3, 7, 11, 15, msg, offset + 2 * s[j++]);\n      G2(3, 7, 11, 15, msg, offset + 2 * s[j++]);\n\n      G1(0, 5, 10, 15, msg, offset + 2 * s[j++]);\n      G2(0, 5, 10, 15, msg, offset + 2 * s[j++]);\n      G1(1, 6, 11, 12, msg, offset + 2 * s[j++]);\n      G2(1, 6, 11, 12, msg, offset + 2 * s[j++]);\n      G1(2, 7, 8, 13, msg, offset + 2 * s[j++]);\n      G2(2, 7, 8, 13, msg, offset + 2 * s[j++]);\n      G1(3, 4, 9, 14, msg, offset + 2 * s[j++]);\n      G2(3, 4, 9, 14, msg, offset + 2 * s[j++]);\n    }\n    this.v0l ^= BUF[0] ^ BUF[16];\n    this.v0h ^= BUF[1] ^ BUF[17];\n    this.v1l ^= BUF[2] ^ BUF[18];\n    this.v1h ^= BUF[3] ^ BUF[19];\n    this.v2l ^= BUF[4] ^ BUF[20];\n    this.v2h ^= BUF[5] ^ BUF[21];\n    this.v3l ^= BUF[6] ^ BUF[22];\n    this.v3h ^= BUF[7] ^ BUF[23];\n    this.v4l ^= BUF[8] ^ BUF[24];\n    this.v4h ^= BUF[9] ^ BUF[25];\n    this.v5l ^= BUF[10] ^ BUF[26];\n    this.v5h ^= BUF[11] ^ BUF[27];\n    this.v6l ^= BUF[12] ^ BUF[28];\n    this.v6h ^= BUF[13] ^ BUF[29];\n    this.v7l ^= BUF[14] ^ BUF[30];\n    this.v7h ^= BUF[15] ^ BUF[31];\n    BUF.fill(0);\n  }\n  destroy() {\n    this.destroyed = true;\n    this.buffer32.fill(0);\n    this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n  }\n}\n\n/**\n * BLAKE2b - optimized for 64-bit platforms. JS doesn't have uint64, so it's slower than BLAKE2s.\n * @param msg - message that would be hashed\n * @param opts - dkLen, key, salt, personalization\n */\nexport const blake2b = /* @__PURE__ */ wrapConstructorWithOpts<BLAKE2b, BlakeOpts>(\n  (opts) => new BLAKE2b(opts)\n);\n","const CHR = '0123456789abcdef';\nconst U8 = new Uint8Array(256);\nconst U16 = new Uint8Array(256 * 256);\nfor (let i = 0, count = CHR.length; i < count; i++) {\n    U8[CHR[i].charCodeAt(0) | 0] = i | 0;\n    if (i > 9) {\n        U8[CHR[i].toUpperCase().charCodeAt(0) | 0] = i | 0;\n    }\n}\nfor (let i = 0; i < 256; i++) {\n    const s = i << 8;\n    for (let j = 0; j < 256; j++) {\n        U16[s | j] = (U8[i] << 4) | U8[j];\n    }\n}\n/**\n * @name hexToU8a\n * @summary Creates a Uint8Array object from a hex string.\n * @description\n * `null` inputs returns an empty `Uint8Array` result. Hex input values return the actual bytes value converted to a Uint8Array. Anything that is not a hex string (including the `0x` prefix) throws an error.\n * @example\n * <BR>\n *\n * ```javascript\n * import { hexToU8a } from '@polkadot/util';\n *\n * hexToU8a('0x80001f'); // Uint8Array([0x80, 0x00, 0x1f])\n * hexToU8a('0x80001f', 32); // Uint8Array([0x00, 0x80, 0x00, 0x1f])\n * ```\n */\nexport function hexToU8a(value, bitLength = -1) {\n    if (!value) {\n        return new Uint8Array();\n    }\n    let s = value.startsWith('0x')\n        ? 2\n        : 0;\n    const decLength = Math.ceil((value.length - s) / 2);\n    const endLength = Math.ceil(bitLength === -1\n        ? decLength\n        : bitLength / 8);\n    const result = new Uint8Array(endLength);\n    const offset = endLength > decLength\n        ? endLength - decLength\n        : 0;\n    for (let i = offset; i < endLength; i++, s += 2) {\n        // The big factor here is actually the string lookups. If we do\n        // HEX_TO_U16[value.substring()] we get an 10x slowdown. In the\n        // same vein using charCodeAt (as opposed to value[s] or value.charAt(s)) is\n        // also the faster operation by at least 2x with the character map above\n        result[i] = U16[(value.charCodeAt(s) << 8) | value.charCodeAt(s + 1)];\n    }\n    return result;\n}\n","export { packageInfo } from './packageInfo.js';\n/** @internal Last-resort \"this\", if it gets here it probably would fail anyway */\nfunction evaluateThis(fn) {\n    return fn('return this');\n}\n/**\n * A cross-environment implementation for globalThis\n */\nexport const xglobal = /*#__PURE__*/ (typeof globalThis !== 'undefined'\n    ? globalThis\n    : typeof global !== 'undefined'\n        ? global\n        : typeof self !== 'undefined'\n            ? self\n            : typeof window !== 'undefined'\n                ? window\n                : evaluateThis(Function));\n/**\n * Extracts a known global from the environment, applying a fallback if not found\n */\nexport function extractGlobal(name, fallback) {\n    // Not quite sure why this is here - snuck in with TS 4.7.2 with no real idea\n    // (as of now) as to why this looks like an \"any\" when we do cast it to a T\n    //\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n    return typeof xglobal[name] === 'undefined'\n        ? fallback\n        : xglobal[name];\n}\n/**\n * Expose a value as a known global, if not already defined\n */\nexport function exposeGlobal(name, fallback) {\n    if (typeof xglobal[name] === 'undefined') {\n        xglobal[name] = fallback;\n    }\n}\n","import { extractGlobal } from '@polkadot/x-global';\nexport { packageInfo } from './packageInfo.js';\n/**\n * @internal\n *\n * There are _still_ some older environments (specifically RN < 0.70), that does\n * not have proper BigInt support - a non-working fallback is provided for those.\n *\n * We detect availability of BigInt upon usage, so this is purely to allow functional\n * compilation & bundling. Since we have operators such as *+-/ top-level, a number-ish\n * result is used here.\n */\nfunction invalidFallback() {\n    return Number.NaN;\n}\nexport const BigInt = /*#__PURE__*/ extractGlobal('BigInt', invalidFallback);\n","import { BigInt } from '@polkadot/x-bigint';\nimport { xglobal } from '@polkadot/x-global';\n/** true if the environment has proper BigInt support */\nexport const hasBigInt = typeof BigInt === 'function' && typeof BigInt.asIntN === 'function';\n/** true if the environment is CJS */\nexport const hasCjs = typeof require === 'function' && typeof module !== 'undefined';\n/** true if the environment has __dirname available */\nexport const hasDirname = typeof __dirname !== 'undefined';\n/** true if the environment is ESM */\nexport const hasEsm = !hasCjs;\n/** true if the environment has WebAssembly available */\nexport const hasWasm = typeof WebAssembly !== 'undefined';\n/** true if the environment has support for Buffer (typically Node.js) */\nexport const hasBuffer = typeof xglobal.Buffer === 'function' && typeof xglobal.Buffer.isBuffer === 'function';\n/** true if the environment has process available (typically Node.js) */\nexport const hasProcess = typeof xglobal.process === 'object';\n","/**\n * @name isFunction\n * @summary Tests for a `function`.\n * @description\n * Checks to see if the input value is a JavaScript function.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isFunction } from '@polkadot/util';\n *\n * isFunction(() => false); // => true\n * ```\n */\nexport function isFunction(value) {\n    return typeof value === 'function';\n}\n","import { xglobal } from '@polkadot/x-global';\nimport { hasBuffer } from '../has.js';\nimport { isFunction } from './function.js';\n/**\n * @name isBuffer\n * @summary Tests for a `Buffer` object instance.\n * @description\n * Checks to see if the input object is an instance of `Buffer`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isBuffer } from '@polkadot/util';\n *\n * console.log('isBuffer', isBuffer(Buffer.from([]))); // => true\n * ```\n */\nexport function isBuffer(value) {\n    // we do check a function first, since it is slightly faster than isBuffer itself\n    return hasBuffer && !!value && isFunction(value.readDoubleLE) && xglobal.Buffer.isBuffer(value);\n}\n","export const REGEX_HEX_PREFIXED = /^0x[\\da-fA-F]+$/;\nexport const REGEX_HEX_NOPREFIX = /^[\\da-fA-F]+$/;\n/**\n * @name isHex\n * @summary Tests for a hex string.\n * @description\n * Checks to see if the input value is a `0x` prefixed hex string. Optionally (`bitLength` !== -1) checks to see if the bitLength is correct.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isHex } from '@polkadot/util';\n *\n * isHex('0x1234'); // => true\n * isHex('0x1234', 8); // => false\n * ```\n */\nexport function isHex(value, bitLength = -1, ignoreLength) {\n    return (typeof value === 'string' && (value === '0x' ||\n        REGEX_HEX_PREFIXED.test(value))) && (bitLength === -1\n        ? (ignoreLength || (value.length % 2 === 0))\n        : (value.length === (2 + Math.ceil(bitLength / 4))));\n}\n","/**\n * @name isU8a\n * @summary Tests for a `Uint8Array` object instance.\n * @description\n * Checks to see if the input object is an instance of `Uint8Array`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isUint8Array } from '@polkadot/util';\n *\n * console.log('isU8a', isU8a([])); // => false\n * ```\n */\nexport function isU8a(value) {\n    // here we defer the instanceof check which is actually slightly\n    // slower than just checking the constrctor (direct instances)\n    return (((value && value.constructor) === Uint8Array) ||\n        value instanceof Uint8Array);\n}\n","export class TextEncoder {\n    encode(value) {\n        const count = value.length;\n        const u8a = new Uint8Array(count);\n        for (let i = 0; i < count; i++) {\n            u8a[i] = value.charCodeAt(i);\n        }\n        return u8a;\n    }\n}\n","import { extractGlobal } from '@polkadot/x-global';\nimport { TextEncoder as Fallback } from './fallback.js';\nexport { packageInfo } from './packageInfo.js';\nexport const TextEncoder = /*#__PURE__*/ extractGlobal('TextEncoder', Fallback);\n","import { TextEncoder } from '@polkadot/x-textencoder';\nconst encoder = new TextEncoder();\n/**\n * @name stringToU8a\n * @summary Creates a Uint8Array object from a utf-8 string.\n * @description\n * String input values return the actual encoded `UInt8Array`. `null` or `undefined` values returns an empty encoded array.\n * @example\n * <BR>\n *\n * ```javascript\n * import { stringToU8a } from '@polkadot/util';\n *\n * stringToU8a('hello'); // [0x68, 0x65, 0x6c, 0x6c, 0x6f]\n * ```\n */\nexport function stringToU8a(value) {\n    return value\n        ? encoder.encode(value.toString())\n        : new Uint8Array();\n}\n","import { hexToU8a } from '../hex/toU8a.js';\nimport { isBuffer } from '../is/buffer.js';\nimport { isHex } from '../is/hex.js';\nimport { isU8a } from '../is/u8a.js';\nimport { stringToU8a } from '../string/toU8a.js';\n/**\n * @name u8aToU8a\n * @summary Creates a Uint8Array value from a Uint8Array, Buffer, string or hex input.\n * @description\n * `null` or `undefined` inputs returns a `[]` result, Uint8Array values returns the value, hex strings returns a Uint8Array representation.\n * @example\n * <BR>\n *\n * ```javascript\n * import { u8aToU8a } from '@polkadot/util';\n *\n * u8aToU8a(new Uint8Array([0x12, 0x34]); // => Uint8Array([0x12, 0x34])\n * u8aToU8a(0x1234); // => Uint8Array([0x12, 0x34])\n * ```\n */\nexport function u8aToU8a(value) {\n    return isU8a(value)\n        // NOTE isBuffer needs to go here since it actually extends\n        // Uint8Array on Node.js environments, so all Buffer are Uint8Array,\n        // but Uint8Array is not Buffer\n        ? isBuffer(value)\n            ? new Uint8Array(value)\n            : value\n        : isHex(value)\n            ? hexToU8a(value)\n            : Array.isArray(value)\n                ? new Uint8Array(value)\n                : stringToU8a(value);\n}\n","export class TextDecoder {\n    constructor(encoding) {\n        this.__encoding = encoding;\n    }\n    decode(value) {\n        let result = '';\n        for (let i = 0, count = value.length; i < count; i++) {\n            result += String.fromCharCode(value[i]);\n        }\n        return result;\n    }\n}\n","import { extractGlobal } from '@polkadot/x-global';\nimport { TextDecoder as Fallback } from './fallback.js';\nexport { packageInfo } from './packageInfo.js';\nexport const TextDecoder = /*#__PURE__*/ extractGlobal('TextDecoder', Fallback);\n","import { TextDecoder } from '@polkadot/x-textdecoder';\nconst decoder = new TextDecoder('utf-8');\n/**\n * @name u8aToString\n * @summary Creates a utf-8 string from a Uint8Array object.\n * @description\n * `UInt8Array` input values return the actual decoded utf-8 string. `null` or `undefined` values returns an empty string.\n * @example\n * <BR>\n *\n * ```javascript\n * import { u8aToString } from '@polkadot/util';\n *\n * u8aToString(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f])); // hello\n * ```\n */\nexport function u8aToString(value) {\n    return value\n        ? decoder.decode(value)\n        : '';\n}\n","import { xglobal } from '@polkadot/x-global';\nexport { packageInfo } from './packageInfo.js';\nexport const crypto = xglobal.crypto;\nexport function getRandomValues(arr) {\n    return crypto.getRandomValues(arr);\n}\n","import { getRandomValues } from '@polkadot/x-randomvalues';\nconst DEFAULT_CRYPTO = { getRandomValues };\nconst DEFAULT_SELF = { crypto: DEFAULT_CRYPTO };\n/**\n * @name Wbg\n * @description\n * This defines the internal interfaces that wasm-bindgen used to communicate\n * with the host layer. None of these functions are available to the user, rather\n * they are called internally from the WASM code itself.\n *\n * The interfaces here are exposed in the imports on the created WASM interfaces.\n *\n * Internally the implementation does a thin layer into the supplied bridge.\n */\nexport class Wbg {\n    constructor(bridge) {\n        /** @internal */\n        this.abort = () => {\n            throw new Error('abort');\n        };\n        /** @internal */\n        this.__wbindgen_is_undefined = (idx) => {\n            return this.__internal__bridge.getObject(idx) === undefined;\n        };\n        /** @internal */\n        this.__wbindgen_throw = (ptr, len) => {\n            throw new Error(this.__internal__bridge.getString(ptr, len));\n        };\n        /** @internal */\n        this.__wbg_self_1b7a39e3a92c949c = () => {\n            return this.__internal__bridge.addObject(DEFAULT_SELF);\n        };\n        /** @internal */\n        this.__wbg_require_604837428532a733 = (ptr, len) => {\n            throw new Error(`Unable to require ${this.__internal__bridge.getString(ptr, len)}`);\n        };\n        /** @internal */\n        this.__wbg_crypto_968f1772287e2df0 = (_idx) => {\n            return this.__internal__bridge.addObject(DEFAULT_CRYPTO);\n        };\n        /** @internal */\n        this.__wbg_getRandomValues_a3d34b4fee3c2869 = (_idx) => {\n            return this.__internal__bridge.addObject(DEFAULT_CRYPTO.getRandomValues);\n        };\n        /** @internal */\n        this.__wbg_getRandomValues_f5e14ab7ac8e995d = (_arg0, ptr, len) => {\n            DEFAULT_CRYPTO.getRandomValues(this.__internal__bridge.getU8a(ptr, len));\n        };\n        /** @internal */\n        this.__wbg_randomFillSync_d5bd2d655fdf256a = (_idx, _ptr, _len) => {\n            throw new Error('randomFillsync is not available');\n            // getObject(idx).randomFillSync(getU8a(ptr, len));\n        };\n        /** @internal */\n        this.__wbindgen_object_drop_ref = (idx) => {\n            this.__internal__bridge.takeObject(idx);\n        };\n        this.__internal__bridge = bridge;\n    }\n}\n","/**\n * @name createWasmFn\n * @description\n * Create a WASM (or ASM.js) creator interface based on the supplied information.\n *\n * It will attempt to create a WASM interface first and if this fails or is not available in\n * the environment, will fallback to attempting to create an ASM.js interface.\n */\nexport function createWasmFn(root, wasmBytes, asmFn) {\n    return async (wbg) => {\n        const result = {\n            error: null,\n            type: 'none',\n            wasm: null\n        };\n        try {\n            if (!wasmBytes?.length) {\n                throw new Error('No WebAssembly provided for initialization');\n            }\n            else if (typeof WebAssembly !== 'object' || typeof WebAssembly.instantiate !== 'function') {\n                throw new Error('WebAssembly is not available in your environment');\n            }\n            const source = await WebAssembly.instantiate(wasmBytes, { wbg });\n            result.wasm = source.instance.exports;\n            result.type = 'wasm';\n        }\n        catch (error) {\n            // if we have a valid supplied asm.js, return that\n            if (typeof asmFn === 'function') {\n                result.wasm = asmFn(wbg);\n                result.type = 'asm';\n            }\n            else {\n                result.error = `FATAL: Unable to initialize @polkadot/wasm-${root}:: ${error.message}`;\n                console.error(result.error);\n            }\n        }\n        return result;\n    };\n}\n","const u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\nconst clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\nconst fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\nconst fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\nconst freb = (eb, start) => {\n    const b = new u16(31);\n    for (let i = 0; i < 31; ++i) {\n        b[i] = start += 1 << eb[i - 1];\n    }\n    // numbers here are at max 18 bits\n    const r = new u32(b[30]);\n    for (let i = 1; i < 30; ++i) {\n        for (let j = b[i]; j < b[i + 1]; ++j) {\n            r[j] = ((j - b[i]) << 5) | i;\n        }\n    }\n    return [b, r];\n};\nconst [fl, revfl] = freb(fleb, 2);\nfl[28] = 258, revfl[258] = 28;\nconst [fd] = freb(fdeb, 0);\nconst rev = new u16(32768);\nfor (let i = 0; i < 32768; ++i) {\n    // reverse table algorithm from SO\n    let x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n    x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n    x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n    rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\nconst hMap = ((cd, mb, r) => {\n    const s = cd.length;\n    // index\n    let i = 0;\n    // u16 \"map\": index -> # of codes with bit length = index\n    const l = new u16(mb);\n    // length of cd must be 288 (total # of codes)\n    for (; i < s; ++i)\n        ++l[cd[i] - 1];\n    // u16 \"map\": index -> minimum code for bit length = index\n    const le = new u16(mb);\n    for (i = 0; i < mb; ++i) {\n        le[i] = (le[i - 1] + l[i - 1]) << 1;\n    }\n    let co;\n    if (r) {\n        // u16 \"map\": index -> number of actual bits, symbol for code\n        co = new u16(1 << mb);\n        // bits to remove for reverser\n        const rvb = 15 - mb;\n        for (i = 0; i < s; ++i) {\n            // ignore 0 lengths\n            if (cd[i]) {\n                // num encoding both symbol and bits read\n                const sv = (i << 4) | cd[i];\n                // free bits\n                const r = mb - cd[i];\n                // start value\n                let v = le[cd[i] - 1]++ << r;\n                // m is end value\n                for (const m = v | ((1 << r) - 1); v <= m; ++v) {\n                    // every 16 bit value starting with the code yields the same result\n                    co[rev[v] >>> rvb] = sv;\n                }\n            }\n        }\n    }\n    else {\n        co = new u16(s);\n        for (i = 0; i < s; ++i)\n            co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n    }\n    return co;\n});\nconst flt = new u8(288);\nfor (let i = 0; i < 144; ++i)\n    flt[i] = 8;\nfor (let i = 144; i < 256; ++i)\n    flt[i] = 9;\nfor (let i = 256; i < 280; ++i)\n    flt[i] = 7;\nfor (let i = 280; i < 288; ++i)\n    flt[i] = 8;\nconst fdt = new u8(32);\nfor (let i = 0; i < 32; ++i)\n    fdt[i] = 5;\nconst flrm = hMap(flt, 9, 1);\nconst fdrm = hMap(fdt, 5, 1);\nconst bits = (d, p, m) => {\n    const o = p >>> 3;\n    return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\nconst bits16 = (d, p) => {\n    const o = p >>> 3;\n    return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\nconst shft = (p) => (p >>> 3) + (p & 7 && 1);\nconst slc = (v, s, e) => {\n    if (s == null || s < 0)\n        s = 0;\n    if (e == null || e > v.length)\n        e = v.length;\n    // can't use .constructor in case user-supplied\n    const n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n    n.set(v.subarray(s, e));\n    return n;\n};\nconst max = (a) => {\n    let m = a[0];\n    for (let i = 1, count = a.length; i < count; ++i) {\n        if (a[i] > m)\n            m = a[i];\n    }\n    return m;\n};\nconst inflt = (dat, buf, st) => {\n    const noSt = !st || st.i;\n    if (!st)\n        st = {};\n    // source length\n    const sl = dat.length;\n    // have to estimate size\n    const noBuf = !buf || !noSt;\n    // Assumes roughly 33% compression ratio average\n    if (!buf)\n        buf = new u8(sl * 3);\n    // ensure buffer can fit at least l elements\n    const cbuf = (l) => {\n        let bl = buf.length;\n        // need to increase size to fit\n        if (l > bl) {\n            // Double or set to necessary, whichever is greater\n            const nbuf = new u8(Math.max(bl << 1, l));\n            nbuf.set(buf);\n            buf = nbuf;\n        }\n    };\n    //  last chunk         bitpos           bytes\n    let final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n    if (final && !lm)\n        return buf;\n    // total bits\n    const tbts = sl << 3;\n    do {\n        if (!lm) {\n            // BFINAL - this is only 1 when last chunk is next\n            st.f = final = bits(dat, pos, 1);\n            // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n            const type = bits(dat, pos + 1, 3);\n            pos += 3;\n            if (!type) {\n                // go to end of byte boundary\n                const s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n                if (t > sl) {\n                    if (noSt)\n                        throw 'unexpected EOF';\n                    break;\n                }\n                // ensure size\n                if (noBuf)\n                    cbuf(bt + l);\n                // Copy over uncompressed data\n                buf.set(dat.subarray(s, t), bt);\n                // Get new bitpos, update byte count\n                st.b = bt += l, st.p = pos = t << 3;\n                continue;\n            }\n            else if (type == 1)\n                lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n            else if (type == 2) {\n                //  literal                            lengths\n                const hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n                const tl = hLit + bits(dat, pos + 5, 31) + 1;\n                pos += 14;\n                // length+distance tree\n                const ldt = new u8(tl);\n                // code length tree\n                const clt = new u8(19);\n                for (let i = 0; i < hcLen; ++i) {\n                    // use index map to get real code\n                    clt[clim[i]] = bits(dat, pos + i * 3, 7);\n                }\n                pos += hcLen * 3;\n                // code lengths bits\n                const clb = max(clt), clbmsk = (1 << clb) - 1;\n                if (!noSt && pos + tl * (clb + 7) > tbts)\n                    break;\n                // code lengths map\n                const clm = hMap(clt, clb, 1);\n                for (let i = 0; i < tl;) {\n                    const r = clm[bits(dat, pos, clbmsk)];\n                    // bits read\n                    pos += r & 15;\n                    // symbol\n                    const s = r >>> 4;\n                    // code length to copy\n                    if (s < 16) {\n                        ldt[i++] = s;\n                    }\n                    else {\n                        //  copy   count\n                        let c = 0, n = 0;\n                        if (s == 16)\n                            n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n                        else if (s == 17)\n                            n = 3 + bits(dat, pos, 7), pos += 3;\n                        else if (s == 18)\n                            n = 11 + bits(dat, pos, 127), pos += 7;\n                        while (n--)\n                            ldt[i++] = c;\n                    }\n                }\n                //    length tree                 distance tree\n                const lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n                // max length bits\n                lbt = max(lt);\n                // max dist bits\n                dbt = max(dt);\n                lm = hMap(lt, lbt, 1);\n                dm = hMap(dt, dbt, 1);\n            }\n            else\n                throw 'invalid block type';\n            if (pos > tbts)\n                throw 'unexpected EOF';\n        }\n        // Make sure the buffer can hold this + the largest possible addition\n        // maximum chunk size (practically, theoretically infinite) is 2^17;\n        if (noBuf)\n            cbuf(bt + 131072);\n        const lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n        const mxa = lbt + dbt + 18;\n        while (noSt || pos + mxa < tbts) {\n            // bits read, code\n            const c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n            pos += c & 15;\n            if (pos > tbts)\n                throw 'unexpected EOF';\n            if (!c)\n                throw 'invalid length/literal';\n            if (sym < 256)\n                buf[bt++] = sym;\n            else if (sym == 256) {\n                lm = undefined;\n                break;\n            }\n            else {\n                let add = sym - 254;\n                // no extra bits needed if less\n                if (sym > 264) {\n                    // index\n                    const i = sym - 257, b = fleb[i];\n                    add = bits(dat, pos, (1 << b) - 1) + fl[i];\n                    pos += b;\n                }\n                // dist\n                const d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n                if (!d)\n                    throw 'invalid distance';\n                pos += d & 15;\n                let dt = fd[dsym];\n                if (dsym > 3) {\n                    const b = fdeb[dsym];\n                    dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n                }\n                if (pos > tbts)\n                    throw 'unexpected EOF';\n                if (noBuf)\n                    cbuf(bt + 131072);\n                const end = bt + add;\n                for (; bt < end; bt += 4) {\n                    buf[bt] = buf[bt - dt];\n                    buf[bt + 1] = buf[bt + 1 - dt];\n                    buf[bt + 2] = buf[bt + 2 - dt];\n                    buf[bt + 3] = buf[bt + 3 - dt];\n                }\n                bt = end;\n            }\n        }\n        st.l = lm, st.p = pos, st.b = bt;\n        if (lm)\n            final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n    } while (!final);\n    return bt == buf.length ? buf : slc(buf, 0, bt);\n};\nconst zlv = (d) => {\n    if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n        throw 'invalid zlib data';\n    if (d[1] & 32)\n        throw 'invalid zlib data: preset dictionaries not supported';\n};\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n    return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n","const chr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst map = new Array(256);\nfor (let i = 0, count = chr.length; i < count; i++) {\n    map[chr.charCodeAt(i)] = i;\n}\n/**\n * @name base64Decode\n * @description\n * A base64Decoding function that operates in all environments. Unlike decoding\n * from Buffer (Node.js only) or atob (browser-only) this implementation is\n * slightly slower, but it is platform independent.\n *\n * For our usage, since we have access to the static final size (where used), we\n * decode to a specified output buffer. This also means we have applied a number\n * of optimizations based on this - checking output position instead of chars.\n */\nexport function base64Decode(data, out) {\n    let byte = 0;\n    let bits = 0;\n    let pos = -1;\n    for (let i = 0, count = out.length; pos < count; i++) {\n        // each character represents 6 bits\n        byte = (byte << 6) | map[data.charCodeAt(i)];\n        // each byte needs to contain 8 bits\n        if ((bits += 6) >= 8) {\n            out[++pos] = (byte >>> (bits -= 8)) & 0xff;\n        }\n    }\n    return out;\n}\n","import { base64Decode, unzlibSync } from '@polkadot/wasm-util';\nimport { bytes, lenIn, lenOut } from './cjs/bytes.js';\nexport { packageInfo } from './packageInfo.js';\n/**\n * @name wasmBytes\n * @description\n * The decoded WASM interface as exposed by this package.\n *\n * The build process will output into cjs/* into a compressed base64 format.\n * Upon loading the exposed bytes will be decoded and decompressed from this\n * specific format and returned.\n */\nexport const wasmBytes = /*#__PURE__*/ unzlibSync(base64Decode(bytes, new Uint8Array(lenIn)), new Uint8Array(lenOut));\n","import { createWasmFn } from '@polkadot/wasm-bridge';\nimport { wasmBytes } from '@polkadot/wasm-crypto-wasm';\nexport { packageInfo } from './packageInfo.js';\n/**\n * @name createWasm\n * @description\n * Creates an interface using only WASM\n */\nexport const createWasm = /*#__PURE__*/ createWasmFn('crypto', wasmBytes, null);\n","import { Bridge } from '@polkadot/wasm-bridge';\nimport { createWasm } from '@polkadot/wasm-crypto-init';\n/**\n * @name bridge\n * @description\n * The JS <-> WASM bridge that is in operation. For the specific package\n * it is a global, i.e. all operations happens on this specific bridge\n */\nexport const bridge = new Bridge(createWasm);\n/**\n * @name initBridge\n * @description\n * Creates a new bridge interface with the (optional) initialization function\n */\nexport async function initBridge(createWasm) {\n    return bridge.init(createWasm);\n}\n","import { stringToU8a, u8aToString } from '@polkadot/util';\nimport { Wbg } from './wbg.js';\n/**\n * @name Bridge\n * @description\n * Creates a bridge between the JS and WASM environments.\n *\n * For any bridge it is passed an function which is then called internally at the\n * time of initialization. This affectively implements the layer between WASM and\n * the native environment, providing all the plumbing needed for the Wbg classes.\n */\nexport class Bridge {\n    constructor(createWasm) {\n        this.__internal__createWasm = createWasm;\n        this.__internal__cachegetInt32 = null;\n        this.__internal__cachegetUint8 = null;\n        this.__internal__heap = new Array(32)\n            .fill(undefined)\n            .concat(undefined, null, true, false);\n        this.__internal__heapNext = this.__internal__heap.length;\n        this.__internal__type = 'none';\n        this.__internal__wasm = null;\n        this.__internal__wasmError = null;\n        this.__internal__wasmPromise = null;\n        this.__internal__wbg = { ...new Wbg(this) };\n    }\n    /** @description Returns the init error */\n    get error() {\n        return this.__internal__wasmError;\n    }\n    /** @description Returns the init type */\n    get type() {\n        return this.__internal__type;\n    }\n    /** @description Returns the created wasm interface */\n    get wasm() {\n        return this.__internal__wasm;\n    }\n    /** @description Performs the wasm initialization */\n    async init(createWasm) {\n        if (!this.__internal__wasmPromise || createWasm) {\n            this.__internal__wasmPromise = (createWasm || this.__internal__createWasm)(this.__internal__wbg);\n        }\n        const { error, type, wasm } = await this.__internal__wasmPromise;\n        this.__internal__type = type;\n        this.__internal__wasm = wasm;\n        this.__internal__wasmError = error;\n        return this.__internal__wasm;\n    }\n    /**\n     * @internal\n     * @description Gets an object from the heap\n     */\n    getObject(idx) {\n        return this.__internal__heap[idx];\n    }\n    /**\n     * @internal\n     * @description Removes an object from the heap\n     */\n    dropObject(idx) {\n        if (idx < 36) {\n            return;\n        }\n        this.__internal__heap[idx] = this.__internal__heapNext;\n        this.__internal__heapNext = idx;\n    }\n    /**\n     * @internal\n     * @description Retrieves and removes an object to the heap\n     */\n    takeObject(idx) {\n        const ret = this.getObject(idx);\n        this.dropObject(idx);\n        return ret;\n    }\n    /**\n     * @internal\n     * @description Adds an object to the heap\n     */\n    addObject(obj) {\n        if (this.__internal__heapNext === this.__internal__heap.length) {\n            this.__internal__heap.push(this.__internal__heap.length + 1);\n        }\n        const idx = this.__internal__heapNext;\n        this.__internal__heapNext = this.__internal__heap[idx];\n        this.__internal__heap[idx] = obj;\n        return idx;\n    }\n    /**\n     * @internal\n     * @description Retrieve an Int32 in the WASM interface\n     */\n    getInt32() {\n        if (this.__internal__cachegetInt32 === null || this.__internal__cachegetInt32.buffer !== this.__internal__wasm.memory.buffer) {\n            this.__internal__cachegetInt32 = new Int32Array(this.__internal__wasm.memory.buffer);\n        }\n        return this.__internal__cachegetInt32;\n    }\n    /**\n     * @internal\n     * @description Retrieve an Uint8Array in the WASM interface\n     */\n    getUint8() {\n        if (this.__internal__cachegetUint8 === null || this.__internal__cachegetUint8.buffer !== this.__internal__wasm.memory.buffer) {\n            this.__internal__cachegetUint8 = new Uint8Array(this.__internal__wasm.memory.buffer);\n        }\n        return this.__internal__cachegetUint8;\n    }\n    /**\n     * @internal\n     * @description Retrieves an Uint8Array in the WASM interface\n     */\n    getU8a(ptr, len) {\n        return this.getUint8().subarray(ptr / 1, ptr / 1 + len);\n    }\n    /**\n     * @internal\n     * @description Retrieves a string in the WASM interface\n     */\n    getString(ptr, len) {\n        return u8aToString(this.getU8a(ptr, len));\n    }\n    /**\n     * @internal\n     * @description Allocates an Uint8Array in the WASM interface\n     */\n    allocU8a(arg) {\n        const ptr = this.__internal__wasm.__wbindgen_malloc(arg.length * 1);\n        this.getUint8().set(arg, ptr / 1);\n        return [ptr, arg.length];\n    }\n    /**\n     * @internal\n     * @description Allocates a string in the WASM interface\n     */\n    allocString(arg) {\n        return this.allocU8a(stringToU8a(arg));\n    }\n    /**\n     * @internal\n     * @description Retrieves an Uint8Array from the WASM interface\n     */\n    resultU8a() {\n        const r0 = this.getInt32()[8 / 4 + 0];\n        const r1 = this.getInt32()[8 / 4 + 1];\n        const ret = this.getU8a(r0, r1).slice();\n        this.__internal__wasm.__wbindgen_free(r0, r1 * 1);\n        return ret;\n    }\n    /**\n     * @internal\n     * @description Retrieve a string from the WASM interface\n     */\n    resultString() {\n        return u8aToString(this.resultU8a());\n    }\n}\n","import { bridge, initBridge } from './init.js';\nexport { packageInfo } from './packageInfo.js';\nexport { bridge };\n/**\n * @internal\n * @description\n * This create an extenal interface function from the signature, all the while checking\n * the actual bridge wasm interface to ensure it has been initialized.\n *\n * This means that we can call it\n *\n *   withWasm(wasm: WasmCryptoInstance, a: number, b: string) => Uint8Array\n *\n * and in this case it will create an interface function with the signarure\n *\n *   (a: number, b: string) => Uint8Array\n */\nfunction withWasm(fn) {\n    return (...params) => {\n        if (!bridge.wasm) {\n            throw new Error('The WASM interface has not been initialized. Ensure that you wait for the initialization Promise with waitReady() from @polkadot/wasm-crypto (or cryptoWaitReady() from @polkadot/util-crypto) before attempting to use WASM-only interfaces.');\n        }\n        return fn(bridge.wasm, ...params);\n    };\n}\nexport const bip39Generate = /*#__PURE__*/ withWasm((wasm, words) => {\n    wasm.ext_bip39_generate(8, words);\n    return bridge.resultString();\n});\nexport const bip39ToEntropy = /*#__PURE__*/ withWasm((wasm, phrase) => {\n    wasm.ext_bip39_to_entropy(8, ...bridge.allocString(phrase));\n    return bridge.resultU8a();\n});\nexport const bip39ToMiniSecret = /*#__PURE__*/ withWasm((wasm, phrase, password) => {\n    wasm.ext_bip39_to_mini_secret(8, ...bridge.allocString(phrase), ...bridge.allocString(password));\n    return bridge.resultU8a();\n});\nexport const bip39ToSeed = /*#__PURE__*/ withWasm((wasm, phrase, password) => {\n    wasm.ext_bip39_to_seed(8, ...bridge.allocString(phrase), ...bridge.allocString(password));\n    return bridge.resultU8a();\n});\nexport const bip39Validate = /*#__PURE__*/ withWasm((wasm, phrase) => {\n    const ret = wasm.ext_bip39_validate(...bridge.allocString(phrase));\n    return ret !== 0;\n});\nexport const ed25519KeypairFromSeed = /*#__PURE__*/ withWasm((wasm, seed) => {\n    wasm.ext_ed_from_seed(8, ...bridge.allocU8a(seed));\n    return bridge.resultU8a();\n});\nexport const ed25519Sign = /*#__PURE__*/ withWasm((wasm, pubkey, seckey, message) => {\n    wasm.ext_ed_sign(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(seckey), ...bridge.allocU8a(message));\n    return bridge.resultU8a();\n});\nexport const ed25519Verify = /*#__PURE__*/ withWasm((wasm, signature, message, pubkey) => {\n    const ret = wasm.ext_ed_verify(...bridge.allocU8a(signature), ...bridge.allocU8a(message), ...bridge.allocU8a(pubkey));\n    return ret !== 0;\n});\nexport const secp256k1FromSeed = /*#__PURE__*/ withWasm((wasm, seckey) => {\n    wasm.ext_secp_from_seed(8, ...bridge.allocU8a(seckey));\n    return bridge.resultU8a();\n});\nexport const secp256k1Compress = /*#__PURE__*/ withWasm((wasm, pubkey) => {\n    wasm.ext_secp_pub_compress(8, ...bridge.allocU8a(pubkey));\n    return bridge.resultU8a();\n});\nexport const secp256k1Expand = /*#__PURE__*/ withWasm((wasm, pubkey) => {\n    wasm.ext_secp_pub_expand(8, ...bridge.allocU8a(pubkey));\n    return bridge.resultU8a();\n});\nexport const secp256k1Recover = /*#__PURE__*/ withWasm((wasm, msgHash, sig, recovery) => {\n    wasm.ext_secp_recover(8, ...bridge.allocU8a(msgHash), ...bridge.allocU8a(sig), recovery);\n    return bridge.resultU8a();\n});\nexport const secp256k1Sign = /*#__PURE__*/ withWasm((wasm, msgHash, seckey) => {\n    wasm.ext_secp_sign(8, ...bridge.allocU8a(msgHash), ...bridge.allocU8a(seckey));\n    return bridge.resultU8a();\n});\nexport const sr25519DeriveKeypairHard = /*#__PURE__*/ withWasm((wasm, pair, cc) => {\n    wasm.ext_sr_derive_keypair_hard(8, ...bridge.allocU8a(pair), ...bridge.allocU8a(cc));\n    return bridge.resultU8a();\n});\nexport const sr25519DeriveKeypairSoft = /*#__PURE__*/ withWasm((wasm, pair, cc) => {\n    wasm.ext_sr_derive_keypair_soft(8, ...bridge.allocU8a(pair), ...bridge.allocU8a(cc));\n    return bridge.resultU8a();\n});\nexport const sr25519DerivePublicSoft = /*#__PURE__*/ withWasm((wasm, pubkey, cc) => {\n    wasm.ext_sr_derive_public_soft(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(cc));\n    return bridge.resultU8a();\n});\nexport const sr25519KeypairFromSeed = /*#__PURE__*/ withWasm((wasm, seed) => {\n    wasm.ext_sr_from_seed(8, ...bridge.allocU8a(seed));\n    return bridge.resultU8a();\n});\nexport const sr25519Sign = /*#__PURE__*/ withWasm((wasm, pubkey, secret, message) => {\n    wasm.ext_sr_sign(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(secret), ...bridge.allocU8a(message));\n    return bridge.resultU8a();\n});\nexport const sr25519Verify = /*#__PURE__*/ withWasm((wasm, signature, message, pubkey) => {\n    const ret = wasm.ext_sr_verify(...bridge.allocU8a(signature), ...bridge.allocU8a(message), ...bridge.allocU8a(pubkey));\n    return ret !== 0;\n});\nexport const sr25519Agree = /*#__PURE__*/ withWasm((wasm, pubkey, secret) => {\n    wasm.ext_sr_agree(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(secret));\n    return bridge.resultU8a();\n});\nexport const vrfSign = /*#__PURE__*/ withWasm((wasm, secret, context, message, extra) => {\n    wasm.ext_vrf_sign(8, ...bridge.allocU8a(secret), ...bridge.allocU8a(context), ...bridge.allocU8a(message), ...bridge.allocU8a(extra));\n    return bridge.resultU8a();\n});\nexport const vrfVerify = /*#__PURE__*/ withWasm((wasm, pubkey, context, message, extra, outAndProof) => {\n    const ret = wasm.ext_vrf_verify(...bridge.allocU8a(pubkey), ...bridge.allocU8a(context), ...bridge.allocU8a(message), ...bridge.allocU8a(extra), ...bridge.allocU8a(outAndProof));\n    return ret !== 0;\n});\nexport const blake2b = /*#__PURE__*/ withWasm((wasm, data, key, size) => {\n    wasm.ext_blake2b(8, ...bridge.allocU8a(data), ...bridge.allocU8a(key), size);\n    return bridge.resultU8a();\n});\nexport const hmacSha256 = /*#__PURE__*/ withWasm((wasm, key, data) => {\n    wasm.ext_hmac_sha256(8, ...bridge.allocU8a(key), ...bridge.allocU8a(data));\n    return bridge.resultU8a();\n});\nexport const hmacSha512 = /*#__PURE__*/ withWasm((wasm, key, data) => {\n    wasm.ext_hmac_sha512(8, ...bridge.allocU8a(key), ...bridge.allocU8a(data));\n    return bridge.resultU8a();\n});\nexport const keccak256 = /*#__PURE__*/ withWasm((wasm, data) => {\n    wasm.ext_keccak256(8, ...bridge.allocU8a(data));\n    return bridge.resultU8a();\n});\nexport const keccak512 = /*#__PURE__*/ withWasm((wasm, data) => {\n    wasm.ext_keccak512(8, ...bridge.allocU8a(data));\n    return bridge.resultU8a();\n});\nexport const pbkdf2 = /*#__PURE__*/ withWasm((wasm, data, salt, rounds) => {\n    wasm.ext_pbkdf2(8, ...bridge.allocU8a(data), ...bridge.allocU8a(salt), rounds);\n    return bridge.resultU8a();\n});\nexport const scrypt = /*#__PURE__*/ withWasm((wasm, password, salt, log2n, r, p) => {\n    wasm.ext_scrypt(8, ...bridge.allocU8a(password), ...bridge.allocU8a(salt), log2n, r, p);\n    return bridge.resultU8a();\n});\nexport const sha256 = /*#__PURE__*/ withWasm((wasm, data) => {\n    wasm.ext_sha256(8, ...bridge.allocU8a(data));\n    return bridge.resultU8a();\n});\nexport const sha512 = /*#__PURE__*/ withWasm((wasm, data) => {\n    wasm.ext_sha512(8, ...bridge.allocU8a(data));\n    return bridge.resultU8a();\n});\nexport const twox = /*#__PURE__*/ withWasm((wasm, data, rounds) => {\n    wasm.ext_twox(8, ...bridge.allocU8a(data), rounds);\n    return bridge.resultU8a();\n});\nexport function isReady() {\n    return !!bridge.wasm;\n}\nexport async function waitReady() {\n    try {\n        const wasm = await initBridge();\n        return !!wasm;\n    }\n    catch {\n        return false;\n    }\n}\n","const U8 = new Array(256);\nconst U16 = new Array(256 * 256);\nfor (let n = 0; n < 256; n++) {\n    U8[n] = n.toString(16).padStart(2, '0');\n}\nfor (let i = 0; i < 256; i++) {\n    const s = i << 8;\n    for (let j = 0; j < 256; j++) {\n        U16[s | j] = U8[i] + U8[j];\n    }\n}\n/** @internal */\nfunction hex(value, result) {\n    const mod = (value.length % 2) | 0;\n    const length = (value.length - mod) | 0;\n    for (let i = 0; i < length; i += 2) {\n        result += U16[(value[i] << 8) | value[i + 1]];\n    }\n    if (mod) {\n        result += U8[value[length] | 0];\n    }\n    return result;\n}\n/**\n * @name u8aToHex\n * @summary Creates a hex string from a Uint8Array object.\n * @description\n * `UInt8Array` input values return the actual hex string. `null` or `undefined` values returns an `0x` string.\n * @example\n * <BR>\n *\n * ```javascript\n * import { u8aToHex } from '@polkadot/util';\n *\n * u8aToHex(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0xf])); // 0x68656c0f\n * ```\n */\nexport function u8aToHex(value, bitLength = -1, isPrefixed = true) {\n    // this is not 100% correct sinmce we support isPrefixed = false....\n    const empty = isPrefixed\n        ? '0x'\n        : '';\n    if (!value?.length) {\n        return empty;\n    }\n    else if (bitLength > 0) {\n        const length = Math.ceil(bitLength / 8);\n        if (value.length > length) {\n            return `${hex(value.subarray(0, length / 2), empty)}…${hex(value.subarray(value.length - length / 2), '')}`;\n        }\n    }\n    return hex(value, empty);\n}\n","import { hasBigInt, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { isReady } from '@polkadot/wasm-crypto';\n/** @internal */\nexport function createAsHex(fn) {\n    return (...args) => u8aToHex(fn(...args));\n}\n/** @internal */\nexport function createBitHasher(bitLength, fn) {\n    return (data, onlyJs) => fn(data, bitLength, onlyJs);\n}\n/** @internal */\nexport function createDualHasher(wa, js) {\n    return (value, bitLength = 256, onlyJs) => {\n        const u8a = u8aToU8a(value);\n        return !hasBigInt || (!onlyJs && isReady())\n            ? wa[bitLength](u8a)\n            : js[bitLength](u8a);\n    };\n}\n","import { blake2b as blake2bJs } from '@noble/hashes/blake2b';\nimport { hasBigInt, u8aToU8a } from '@polkadot/util';\nimport { blake2b, isReady } from '@polkadot/wasm-crypto';\nimport { createAsHex } from '../helpers.js';\n/**\n * @name blake2AsU8a\n * @summary Creates a blake2b u8a from the input.\n * @description\n * From a `Uint8Array` input, create the blake2b and return the result as a u8a with the specified `bitLength`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { blake2AsU8a } from '@polkadot/util-crypto';\n *\n * blake2AsU8a('abc'); // => [0xba, 0x80, 0xa5, 0x3f, 0x98, 0x1c, 0x4d, 0x0d]\n * ```\n */\nexport function blake2AsU8a(data, bitLength = 256, key, onlyJs) {\n    const byteLength = Math.ceil(bitLength / 8);\n    const u8a = u8aToU8a(data);\n    return !hasBigInt || (!onlyJs && isReady())\n        ? blake2b(u8a, u8aToU8a(key), byteLength)\n        : key\n            ? blake2bJs(u8a, { dkLen: byteLength, key })\n            : blake2bJs(u8a, { dkLen: byteLength });\n}\n/**\n * @name blake2AsHex\n * @description Creates a blake2b hex from the input.\n */\nexport const blake2AsHex = /*#__PURE__*/ createAsHex(blake2AsU8a);\n","/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities\n/**\n * @__NO_SIDE_EFFECTS__\n */\nexport function assertNumber(n) {\n    if (!Number.isSafeInteger(n))\n        throw new Error(`Wrong integer: ${n}`);\n}\nfunction isBytes(a) {\n    return (a instanceof Uint8Array ||\n        (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain(...args) {\n    const id = (a) => a;\n    // Wrap call in closure so JIT can inline calls\n    const wrap = (a, b) => (c) => a(b(c));\n    // Construct chain of args[-1].encode(args[-2].encode([...]))\n    const encode = args.map((x) => x.encode).reduceRight(wrap, id);\n    // Construct chain of args[0].decode(args[1].decode(...))\n    const decode = args.map((x) => x.decode).reduce(wrap, id);\n    return { encode, decode };\n}\n/**\n * Encodes integer radix representation to array of strings using alphabet and back\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(alphabet) {\n    return {\n        encode: (digits) => {\n            if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n                throw new Error('alphabet.encode input should be an array of numbers');\n            return digits.map((i) => {\n                assertNumber(i);\n                if (i < 0 || i >= alphabet.length)\n                    throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n                return alphabet[i];\n            });\n        },\n        decode: (input) => {\n            if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n                throw new Error('alphabet.decode input should be array of strings');\n            return input.map((letter) => {\n                if (typeof letter !== 'string')\n                    throw new Error(`alphabet.decode: not string element=${letter}`);\n                const index = alphabet.indexOf(letter);\n                if (index === -1)\n                    throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n                return index;\n            });\n        },\n    };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = '') {\n    if (typeof separator !== 'string')\n        throw new Error('join separator should be string');\n    return {\n        encode: (from) => {\n            if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n                throw new Error('join.encode input should be array of strings');\n            for (let i of from)\n                if (typeof i !== 'string')\n                    throw new Error(`join.encode: non-string input=${i}`);\n            return from.join(separator);\n        },\n        decode: (to) => {\n            if (typeof to !== 'string')\n                throw new Error('join.decode input should be string');\n            return to.split(separator);\n        },\n    };\n}\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits, chr = '=') {\n    assertNumber(bits);\n    if (typeof chr !== 'string')\n        throw new Error('padding chr should be string');\n    return {\n        encode(data) {\n            if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n                throw new Error('padding.encode input should be array of strings');\n            for (let i of data)\n                if (typeof i !== 'string')\n                    throw new Error(`padding.encode: non-string input=${i}`);\n            while ((data.length * bits) % 8)\n                data.push(chr);\n            return data;\n        },\n        decode(input) {\n            if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n                throw new Error('padding.encode input should be array of strings');\n            for (let i of input)\n                if (typeof i !== 'string')\n                    throw new Error(`padding.decode: non-string input=${i}`);\n            let end = input.length;\n            if ((end * bits) % 8)\n                throw new Error('Invalid padding: string should have whole number of bytes');\n            for (; end > 0 && input[end - 1] === chr; end--) {\n                if (!(((end - 1) * bits) % 8))\n                    throw new Error('Invalid padding: string has too much padding');\n            }\n            return input.slice(0, end);\n        },\n    };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize(fn) {\n    if (typeof fn !== 'function')\n        throw new Error('normalize fn should be function');\n    return { encode: (from) => from, decode: (to) => fn(to) };\n}\n/**\n * Slow: O(n^2) time complexity\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix(data, from, to) {\n    // base 1 is impossible\n    if (from < 2)\n        throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);\n    if (to < 2)\n        throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);\n    if (!Array.isArray(data))\n        throw new Error('convertRadix: data should be array');\n    if (!data.length)\n        return [];\n    let pos = 0;\n    const res = [];\n    const digits = Array.from(data);\n    digits.forEach((d) => {\n        assertNumber(d);\n        if (d < 0 || d >= from)\n            throw new Error(`Wrong integer: ${d}`);\n    });\n    while (true) {\n        let carry = 0;\n        let done = true;\n        for (let i = pos; i < digits.length; i++) {\n            const digit = digits[i];\n            const digitBase = from * carry + digit;\n            if (!Number.isSafeInteger(digitBase) ||\n                (from * carry) / from !== carry ||\n                digitBase - digit !== from * carry) {\n                throw new Error('convertRadix: carry overflow');\n            }\n            carry = digitBase % to;\n            const rounded = Math.floor(digitBase / to);\n            digits[i] = rounded;\n            if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n                throw new Error('convertRadix: carry overflow');\n            if (!done)\n                continue;\n            else if (!rounded)\n                pos = i;\n            else\n                done = false;\n        }\n        res.push(carry);\n        if (done)\n            break;\n    }\n    for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n        res.push(0);\n    return res.reverse();\n}\nconst gcd = /* @__NO_SIDE_EFFECTS__ */ (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = /*@__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));\n/**\n * Implemented with numbers, because BigInt is 5x slower\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix2(data, from, to, padding) {\n    if (!Array.isArray(data))\n        throw new Error('convertRadix2: data should be array');\n    if (from <= 0 || from > 32)\n        throw new Error(`convertRadix2: wrong from=${from}`);\n    if (to <= 0 || to > 32)\n        throw new Error(`convertRadix2: wrong to=${to}`);\n    if (radix2carry(from, to) > 32) {\n        throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n    }\n    let carry = 0;\n    let pos = 0; // bitwise position in current element\n    const mask = 2 ** to - 1;\n    const res = [];\n    for (const n of data) {\n        assertNumber(n);\n        if (n >= 2 ** from)\n            throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n        carry = (carry << from) | n;\n        if (pos + from > 32)\n            throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n        pos += from;\n        for (; pos >= to; pos -= to)\n            res.push(((carry >> (pos - to)) & mask) >>> 0);\n        carry &= 2 ** pos - 1; // clean carry, otherwise it will cause overflow\n    }\n    carry = (carry << (to - pos)) & mask;\n    if (!padding && pos >= from)\n        throw new Error('Excess padding');\n    if (!padding && carry)\n        throw new Error(`Non-zero padding: ${carry}`);\n    if (padding && pos > 0)\n        res.push(carry >>> 0);\n    return res;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num) {\n    assertNumber(num);\n    return {\n        encode: (bytes) => {\n            if (!isBytes(bytes))\n                throw new Error('radix.encode input should be Uint8Array');\n            return convertRadix(Array.from(bytes), 2 ** 8, num);\n        },\n        decode: (digits) => {\n            if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n                throw new Error('radix.decode input should be array of numbers');\n            return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\n        },\n    };\n}\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits, revPadding = false) {\n    assertNumber(bits);\n    if (bits <= 0 || bits > 32)\n        throw new Error('radix2: bits should be in (0..32]');\n    if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n        throw new Error('radix2: carry overflow');\n    return {\n        encode: (bytes) => {\n            if (!isBytes(bytes))\n                throw new Error('radix2.encode input should be Uint8Array');\n            return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n        },\n        decode: (digits) => {\n            if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n                throw new Error('radix2.decode input should be array of numbers');\n            return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n        },\n    };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction unsafeWrapper(fn) {\n    if (typeof fn !== 'function')\n        throw new Error('unsafeWrapper fn should be function');\n    return function (...args) {\n        try {\n            return fn.apply(null, args);\n        }\n        catch (e) { }\n    };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction checksum(len, fn) {\n    assertNumber(len);\n    if (typeof fn !== 'function')\n        throw new Error('checksum fn should be function');\n    return {\n        encode(data) {\n            if (!isBytes(data))\n                throw new Error('checksum.encode: input should be Uint8Array');\n            const checksum = fn(data).slice(0, len);\n            const res = new Uint8Array(data.length + len);\n            res.set(data);\n            res.set(checksum, data.length);\n            return res;\n        },\n        decode(data) {\n            if (!isBytes(data))\n                throw new Error('checksum.decode: input should be Uint8Array');\n            const payload = data.slice(0, -len);\n            const newChecksum = fn(payload).slice(0, len);\n            const oldChecksum = data.slice(-len);\n            for (let i = 0; i < len; i++)\n                if (newChecksum[i] !== oldChecksum[i])\n                    throw new Error('Invalid checksum');\n            return payload;\n        },\n    };\n}\n// prettier-ignore\nexport const utils = {\n    alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n};\n// RFC 4648 aka RFC 3548\n// ---------------------\nexport const base16 = /* @__PURE__ */ chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexport const base32 = /* @__PURE__ */ chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexport const base32hex = /* @__PURE__ */ chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexport const base32crockford = /* @__PURE__ */ chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexport const base64 = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexport const base64url = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nexport const base64urlnopad = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join(''));\n// base58 code\n// -----------\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexport const base58 = /* @__PURE__ */ genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexport const base58flickr = /* @__PURE__ */ genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexport const base58xrp = /* @__PURE__ */ genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\n// xmr ver is done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n// Block encoding significantly reduces quadratic complexity of base58.\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\nexport const base58xmr = {\n    encode(data) {\n        let res = '';\n        for (let i = 0; i < data.length; i += 8) {\n            const block = data.subarray(i, i + 8);\n            res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n        }\n        return res;\n    },\n    decode(str) {\n        let res = [];\n        for (let i = 0; i < str.length; i += 11) {\n            const slice = str.slice(i, i + 11);\n            const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n            const block = base58.decode(slice);\n            for (let j = 0; j < block.length - blockLen; j++) {\n                if (block[j] !== 0)\n                    throw new Error('base58xmr: wrong padding');\n            }\n            res = res.concat(Array.from(block.slice(block.length - blockLen)));\n        }\n        return Uint8Array.from(res);\n    },\n};\nexport const createBase58check = /* @__PURE__ */ (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\n// legacy export, bad name\nexport const base58check = createBase58check;\nconst BECH_ALPHABET = /* @__PURE__ */ chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction bech32Polymod(pre) {\n    const b = pre >> 25;\n    let chk = (pre & 0x1ffffff) << 5;\n    for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n        if (((b >> i) & 1) === 1)\n            chk ^= POLYMOD_GENERATORS[i];\n    }\n    return chk;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n    const len = prefix.length;\n    let chk = 1;\n    for (let i = 0; i < len; i++) {\n        const c = prefix.charCodeAt(i);\n        if (c < 33 || c > 126)\n            throw new Error(`Invalid prefix (${prefix})`);\n        chk = bech32Polymod(chk) ^ (c >> 5);\n    }\n    chk = bech32Polymod(chk);\n    for (let i = 0; i < len; i++)\n        chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n    for (let v of words)\n        chk = bech32Polymod(chk) ^ v;\n    for (let i = 0; i < 6; i++)\n        chk = bech32Polymod(chk);\n    chk ^= encodingConst;\n    return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding) {\n    const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n    const _words = radix2(5);\n    const fromWords = _words.decode;\n    const toWords = _words.encode;\n    const fromWordsUnsafe = unsafeWrapper(fromWords);\n    function encode(prefix, words, limit = 90) {\n        if (typeof prefix !== 'string')\n            throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);\n        if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n            throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);\n        const actualLength = prefix.length + 7 + words.length;\n        if (limit !== false && actualLength > limit)\n            throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n        const lowered = prefix.toLowerCase();\n        const sum = bechChecksum(lowered, words, ENCODING_CONST);\n        return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`;\n    }\n    function decode(str, limit = 90) {\n        if (typeof str !== 'string')\n            throw new Error(`bech32.decode input should be string, not ${typeof str}`);\n        if (str.length < 8 || (limit !== false && str.length > limit))\n            throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);\n        // don't allow mixed case\n        const lowered = str.toLowerCase();\n        if (str !== lowered && str !== str.toUpperCase())\n            throw new Error(`String must be lowercase or uppercase`);\n        str = lowered;\n        const sepIndex = str.lastIndexOf('1');\n        if (sepIndex === 0 || sepIndex === -1)\n            throw new Error(`Letter \"1\" must be present between prefix and data only`);\n        const prefix = str.slice(0, sepIndex);\n        const _words = str.slice(sepIndex + 1);\n        if (_words.length < 6)\n            throw new Error('Data must be at least 6 characters long');\n        const words = BECH_ALPHABET.decode(_words).slice(0, -6);\n        const sum = bechChecksum(prefix, words, ENCODING_CONST);\n        if (!_words.endsWith(sum))\n            throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n        return { prefix, words };\n    }\n    const decodeUnsafe = unsafeWrapper(decode);\n    function decodeToBytes(str) {\n        const { prefix, words } = decode(str, false);\n        return { prefix, words, bytes: fromWords(words) };\n    }\n    return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };\n}\nexport const bech32 = /* @__PURE__ */ genBech32('bech32');\nexport const bech32m = /* @__PURE__ */ genBech32('bech32m');\nexport const utf8 = {\n    encode: (data) => new TextDecoder().decode(data),\n    decode: (str) => new TextEncoder().encode(str),\n};\nexport const hex = /* @__PURE__ */ chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n    if (typeof s !== 'string' || s.length % 2)\n        throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n    return s.toLowerCase();\n}));\n// prettier-ignore\nconst CODERS = {\n    utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\nexport const bytesToString = (type, bytes) => {\n    if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n        throw new TypeError(coderTypeError);\n    if (!isBytes(bytes))\n        throw new TypeError('bytesToString() expects Uint8Array');\n    return CODERS[type].encode(bytes);\n};\nexport const str = bytesToString; // as in python, but for bytes only\nexport const stringToBytes = (type, str) => {\n    if (!CODERS.hasOwnProperty(type))\n        throw new TypeError(coderTypeError);\n    if (typeof str !== 'string')\n        throw new TypeError('stringToBytes() expects string');\n    return CODERS[type].decode(str);\n};\nexport const bytes = stringToBytes;\n","import { u8aToU8a } from '@polkadot/util';\n/** @internal */\nexport function createDecode({ coder, ipfs }, validate) {\n    return (value, ipfsCompat) => {\n        validate(value, ipfsCompat);\n        return coder.decode(ipfs && ipfsCompat\n            ? value.substring(1)\n            : value);\n    };\n}\n/** @internal */\nexport function createEncode({ coder, ipfs }) {\n    return (value, ipfsCompat) => {\n        const out = coder.encode(u8aToU8a(value));\n        return ipfs && ipfsCompat\n            ? `${ipfs}${out}`\n            : out;\n    };\n}\n/** @internal */\nexport function createIs(validate) {\n    return (value, ipfsCompat) => {\n        try {\n            return validate(value, ipfsCompat);\n        }\n        catch {\n            return false;\n        }\n    };\n}\n/** @internal */\nexport function createValidate({ chars, ipfs, type, withPadding }) {\n    return (value, ipfsCompat) => {\n        if (typeof value !== 'string') {\n            throw new Error(`Expected ${type} string input`);\n        }\n        else if (ipfs && ipfsCompat && !value.startsWith(ipfs)) {\n            throw new Error(`Expected ipfs-compatible ${type} to start with '${ipfs}'`);\n        }\n        for (let i = (ipfsCompat ? 1 : 0), count = value.length; i < count; i++) {\n            if (chars.includes(value[i])) {\n                // all ok, character found\n            }\n            else if (withPadding && value[i] === '=') {\n                if (i === count - 1) {\n                    // last character, everything ok\n                }\n                else if (value[i + 1] === '=') {\n                    // next one is also padding, sequence ok\n                }\n                else {\n                    throw new Error(`Invalid ${type} padding sequence \"${value[i]}${value[i + 1]}\" at index ${i}`);\n                }\n            }\n            else {\n                throw new Error(`Invalid ${type} character \"${value[i]}\" (0x${value.charCodeAt(i).toString(16)}) at index ${i}`);\n            }\n        }\n        return true;\n    };\n}\n","import { base58 } from '@scure/base';\nimport { createDecode, createEncode, createIs, createValidate } from '../base32/helpers.js';\nconst config = {\n    chars: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz',\n    coder: base58,\n    ipfs: 'z',\n    type: 'base58'\n};\n/**\n * @name base58Validate\n * @summary Validates a base58 value.\n * @description\n * Validates that the supplied value is valid base58, throwing exceptions if not\n */\nexport const base58Validate = /*#__PURE__*/ createValidate(config);\n/**\n * @name base58Decode\n * @summary Decodes a base58 value.\n * @description\n * From the provided input, decode the base58 and return the result as an `Uint8Array`.\n */\nexport const base58Decode = /*#__PURE__*/ createDecode(config, base58Validate);\n/**\n* @name base58Encode\n* @summary Creates a base58 value.\n* @description\n* From the provided input, create the base58 and return the result as a string.\n*/\nexport const base58Encode = /*#__PURE__*/ createEncode(config);\n/**\n* @name isBase58\n* @description Checks if the input is in base58, returning true/false\n*/\nexport const isBase58 = /*#__PURE__*/ createIs(base58Validate);\n","import { u8aToU8a } from './toU8a.js';\n/**\n * @name u8aConcat\n * @summary Creates a concatenated Uint8Array from the inputs.\n * @description\n * Concatenates the input arrays into a single `UInt8Array`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { { u8aConcat } from '@polkadot/util';\n *\n * u8aConcat(\n *   new Uint8Array([1, 2, 3]),\n *   new Uint8Array([4, 5, 6])\n * ); // [1, 2, 3, 4, 5, 6]\n * ```\n */\nexport function u8aConcat(...list) {\n    const count = list.length;\n    const u8as = new Array(count);\n    let length = 0;\n    for (let i = 0; i < count; i++) {\n        u8as[i] = u8aToU8a(list[i]);\n        length += u8as[i].length;\n    }\n    return u8aConcatStrict(u8as, length);\n}\n/**\n * @name u8aConcatStrict\n * @description A strict version of [[u8aConcat]], accepting only Uint8Array inputs\n */\nexport function u8aConcatStrict(u8as, length = 0) {\n    const count = u8as.length;\n    let offset = 0;\n    if (!length) {\n        for (let i = 0; i < count; i++) {\n            length += u8as[i].length;\n        }\n    }\n    const result = new Uint8Array(length);\n    for (let i = 0; i < count; i++) {\n        result.set(u8as[i], offset);\n        offset += u8as[i].length;\n    }\n    return result;\n}\n","import { stringToU8a, u8aConcat } from '@polkadot/util';\nimport { blake2AsU8a } from '../blake2/asU8a.js';\nconst SS58_PREFIX = stringToU8a('SS58PRE');\nexport function sshash(key) {\n    return blake2AsU8a(u8aConcat(SS58_PREFIX, key), 512);\n}\n","// Copyright (C) 2021-2024 Parity Technologies (UK) Ltd.\n// SPDX-License-Identifier: Apache-2.0\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// \thttp://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport default [\n\t{\n\t\t\"prefix\": 0,\n\t\t\"network\": \"polkadot\",\n\t\t\"displayName\": \"Polkadot Relay Chain\",\n\t\t\"symbols\": [\n\t\t\t\"DOT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polkadot.network\"\n\t},\n\t{\n\t\t\"prefix\": 1,\n\t\t\"network\": \"BareSr25519\",\n\t\t\"displayName\": \"Bare 32-bit Schnorr/Ristretto (S/R 25519) public key.\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"Sr25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 2,\n\t\t\"network\": \"kusama\",\n\t\t\"displayName\": \"Kusama Relay Chain\",\n\t\t\"symbols\": [\n\t\t\t\"KSM\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://kusama.network\"\n\t},\n\t{\n\t\t\"prefix\": 3,\n\t\t\"network\": \"BareEd25519\",\n\t\t\"displayName\": \"Bare 32-bit Ed25519 public key.\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"Ed25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 4,\n\t\t\"network\": \"katalchain\",\n\t\t\"displayName\": \"Katal Chain\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 5,\n\t\t\"network\": \"astar\",\n\t\t\"displayName\": \"Astar Network\",\n\t\t\"symbols\": [\n\t\t\t\"ASTR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://astar.network\"\n\t},\n\t{\n\t\t\"prefix\": 6,\n\t\t\"network\": \"bifrost\",\n\t\t\"displayName\": \"Bifrost\",\n\t\t\"symbols\": [\n\t\t\t\"BNC\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://bifrost.finance/\"\n\t},\n\t{\n\t\t\"prefix\": 7,\n\t\t\"network\": \"edgeware\",\n\t\t\"displayName\": \"Edgeware\",\n\t\t\"symbols\": [\n\t\t\t\"EDG\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://edgewa.re\"\n\t},\n\t{\n\t\t\"prefix\": 8,\n\t\t\"network\": \"karura\",\n\t\t\"displayName\": \"Karura\",\n\t\t\"symbols\": [\n\t\t\t\"KAR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://karura.network/\"\n\t},\n\t{\n\t\t\"prefix\": 9,\n\t\t\"network\": \"reynolds\",\n\t\t\"displayName\": \"Laminar Reynolds Canary\",\n\t\t\"symbols\": [\n\t\t\t\"REY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"http://laminar.network/\"\n\t},\n\t{\n\t\t\"prefix\": 10,\n\t\t\"network\": \"acala\",\n\t\t\"displayName\": \"Acala\",\n\t\t\"symbols\": [\n\t\t\t\"ACA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://acala.network/\"\n\t},\n\t{\n\t\t\"prefix\": 11,\n\t\t\"network\": \"laminar\",\n\t\t\"displayName\": \"Laminar\",\n\t\t\"symbols\": [\n\t\t\t\"LAMI\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"http://laminar.network/\"\n\t},\n\t{\n\t\t\"prefix\": 12,\n\t\t\"network\": \"polymesh\",\n\t\t\"displayName\": \"Polymesh\",\n\t\t\"symbols\": [\n\t\t\t\"POLYX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t6\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polymath.network/\"\n\t},\n\t{\n\t\t\"prefix\": 13,\n\t\t\"network\": \"integritee\",\n\t\t\"displayName\": \"Integritee\",\n\t\t\"symbols\": [\n\t\t\t\"TEER\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://integritee.network\"\n\t},\n\t{\n\t\t\"prefix\": 14,\n\t\t\"network\": \"totem\",\n\t\t\"displayName\": \"Totem\",\n\t\t\"symbols\": [\n\t\t\t\"TOTEM\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t0\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://totemaccounting.com\"\n\t},\n\t{\n\t\t\"prefix\": 15,\n\t\t\"network\": \"synesthesia\",\n\t\t\"displayName\": \"Synesthesia\",\n\t\t\"symbols\": [\n\t\t\t\"SYN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://synesthesia.network/\"\n\t},\n\t{\n\t\t\"prefix\": 16,\n\t\t\"network\": \"kulupu\",\n\t\t\"displayName\": \"Kulupu\",\n\t\t\"symbols\": [\n\t\t\t\"KLP\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://kulupu.network/\"\n\t},\n\t{\n\t\t\"prefix\": 17,\n\t\t\"network\": \"dark\",\n\t\t\"displayName\": \"Dark Mainnet\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 18,\n\t\t\"network\": \"darwinia\",\n\t\t\"displayName\": \"Darwinia Network\",\n\t\t\"symbols\": [\n\t\t\t\"RING\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://darwinia.network\"\n\t},\n\t{\n\t\t\"prefix\": 19,\n\t\t\"network\": \"watr\",\n\t\t\"displayName\": \"Watr Protocol\",\n\t\t\"symbols\": [\n\t\t\t\"WATR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.watr.org\"\n\t},\n\t{\n\t\t\"prefix\": 20,\n\t\t\"network\": \"stafi\",\n\t\t\"displayName\": \"Stafi\",\n\t\t\"symbols\": [\n\t\t\t\"FIS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://stafi.io\"\n\t},\n\t{\n\t\t\"prefix\": 21,\n\t\t\"network\": \"karmachain\",\n\t\t\"displayName\": \"Karmacoin\",\n\t\t\"symbols\": [\n\t\t\t\"KCOIN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t6\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://karmaco.in\"\n\t},\n\t{\n\t\t\"prefix\": 22,\n\t\t\"network\": \"dock-pos-mainnet\",\n\t\t\"displayName\": \"Dock Mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"DCK\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t6\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://dock.io\"\n\t},\n\t{\n\t\t\"prefix\": 23,\n\t\t\"network\": \"shift\",\n\t\t\"displayName\": \"ShiftNrg\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 24,\n\t\t\"network\": \"zero\",\n\t\t\"displayName\": \"ZERO\",\n\t\t\"symbols\": [\n\t\t\t\"ZERO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://zero.io\"\n\t},\n\t{\n\t\t\"prefix\": 25,\n\t\t\"network\": \"zero-alphaville\",\n\t\t\"displayName\": \"ZERO Alphaville\",\n\t\t\"symbols\": [\n\t\t\t\"ZERO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://zero.io\"\n\t},\n\t{\n\t\t\"prefix\": 26,\n\t\t\"network\": \"jupiter\",\n\t\t\"displayName\": \"Jupiter\",\n\t\t\"symbols\": [\n\t\t\t\"jDOT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://jupiter.patract.io\"\n\t},\n\t{\n\t\t\"prefix\": 27,\n\t\t\"network\": \"kabocha\",\n\t\t\"displayName\": \"Kabocha\",\n\t\t\"symbols\": [\n\t\t\t\"KAB\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://kabocha.network\"\n\t},\n\t{\n\t\t\"prefix\": 28,\n\t\t\"network\": \"subsocial\",\n\t\t\"displayName\": \"Subsocial\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 29,\n\t\t\"network\": \"cord\",\n\t\t\"displayName\": \"CORD Network\",\n\t\t\"symbols\": [\n\t\t\t\"DHI\",\n\t\t\t\"WAY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12,\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://cord.network/\"\n\t},\n\t{\n\t\t\"prefix\": 30,\n\t\t\"network\": \"phala\",\n\t\t\"displayName\": \"Phala Network\",\n\t\t\"symbols\": [\n\t\t\t\"PHA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://phala.network\"\n\t},\n\t{\n\t\t\"prefix\": 31,\n\t\t\"network\": \"litentry\",\n\t\t\"displayName\": \"Litentry Network\",\n\t\t\"symbols\": [\n\t\t\t\"LIT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://litentry.com/\"\n\t},\n\t{\n\t\t\"prefix\": 32,\n\t\t\"network\": \"robonomics\",\n\t\t\"displayName\": \"Robonomics\",\n\t\t\"symbols\": [\n\t\t\t\"XRT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://robonomics.network\"\n\t},\n\t{\n\t\t\"prefix\": 33,\n\t\t\"network\": \"datahighway\",\n\t\t\"displayName\": \"DataHighway\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 34,\n\t\t\"network\": \"ares\",\n\t\t\"displayName\": \"Ares Protocol\",\n\t\t\"symbols\": [\n\t\t\t\"ARES\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.aresprotocol.com/\"\n\t},\n\t{\n\t\t\"prefix\": 35,\n\t\t\"network\": \"vln\",\n\t\t\"displayName\": \"Valiu Liquidity Network\",\n\t\t\"symbols\": [\n\t\t\t\"USDv\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t15\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://valiu.com/\"\n\t},\n\t{\n\t\t\"prefix\": 36,\n\t\t\"network\": \"centrifuge\",\n\t\t\"displayName\": \"Centrifuge Chain\",\n\t\t\"symbols\": [\n\t\t\t\"CFG\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://centrifuge.io/\"\n\t},\n\t{\n\t\t\"prefix\": 37,\n\t\t\"network\": \"nodle\",\n\t\t\"displayName\": \"Nodle Chain\",\n\t\t\"symbols\": [\n\t\t\t\"NODL\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t11\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://nodle.io/\"\n\t},\n\t{\n\t\t\"prefix\": 38,\n\t\t\"network\": \"kilt\",\n\t\t\"displayName\": \"KILT Spiritnet\",\n\t\t\"symbols\": [\n\t\t\t\"KILT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t15\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://kilt.io/\"\n\t},\n\t{\n\t\t\"prefix\": 39,\n\t\t\"network\": \"mathchain\",\n\t\t\"displayName\": \"MathChain mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"MATH\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://mathwallet.org\"\n\t},\n\t{\n\t\t\"prefix\": 40,\n\t\t\"network\": \"mathchain-testnet\",\n\t\t\"displayName\": \"MathChain testnet\",\n\t\t\"symbols\": [\n\t\t\t\"MATH\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://mathwallet.org\"\n\t},\n\t{\n\t\t\"prefix\": 41,\n\t\t\"network\": \"polimec\",\n\t\t\"displayName\": \"Polimec Protocol\",\n\t\t\"symbols\": [\n\t\t\t\"PLMC\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.polimec.org/\"\n\t},\n\t{\n\t\t\"prefix\": 42,\n\t\t\"network\": \"substrate\",\n\t\t\"displayName\": \"Substrate\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://substrate.io/\"\n\t},\n\t{\n\t\t\"prefix\": 43,\n\t\t\"network\": \"BareSecp256k1\",\n\t\t\"displayName\": \"Bare 32-bit ECDSA SECP-256k1 public key.\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 44,\n\t\t\"network\": \"chainx\",\n\t\t\"displayName\": \"ChainX\",\n\t\t\"symbols\": [\n\t\t\t\"PCX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t8\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://chainx.org/\"\n\t},\n\t{\n\t\t\"prefix\": 45,\n\t\t\"network\": \"uniarts\",\n\t\t\"displayName\": \"UniArts Network\",\n\t\t\"symbols\": [\n\t\t\t\"UART\",\n\t\t\t\"UINK\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12,\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://uniarts.me\"\n\t},\n\t{\n\t\t\"prefix\": 46,\n\t\t\"network\": \"reserved46\",\n\t\t\"displayName\": \"This prefix is reserved.\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": null,\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 47,\n\t\t\"network\": \"reserved47\",\n\t\t\"displayName\": \"This prefix is reserved.\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": null,\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 48,\n\t\t\"network\": \"neatcoin\",\n\t\t\"displayName\": \"Neatcoin Mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"NEAT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://neatcoin.org\"\n\t},\n\t{\n\t\t\"prefix\": 49,\n\t\t\"network\": \"picasso\",\n\t\t\"displayName\": \"Picasso\",\n\t\t\"symbols\": [\n\t\t\t\"PICA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://picasso.composable.finance\"\n\t},\n\t{\n\t\t\"prefix\": 50,\n\t\t\"network\": \"composable\",\n\t\t\"displayName\": \"Composable Finance\",\n\t\t\"symbols\": [\n\t\t\t\"LAYR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://composable.finance\"\n\t},\n\t{\n\t\t\"prefix\": 51,\n\t\t\"network\": \"oak\",\n\t\t\"displayName\": \"OAK Network\",\n\t\t\"symbols\": [\n\t\t\t\"OAK\",\n\t\t\t\"TUR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10,\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://oak.tech\"\n\t},\n\t{\n\t\t\"prefix\": 52,\n\t\t\"network\": \"KICO\",\n\t\t\"displayName\": \"KICO\",\n\t\t\"symbols\": [\n\t\t\t\"KICO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t14\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://dico.io\"\n\t},\n\t{\n\t\t\"prefix\": 53,\n\t\t\"network\": \"DICO\",\n\t\t\"displayName\": \"DICO\",\n\t\t\"symbols\": [\n\t\t\t\"DICO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t14\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://dico.io\"\n\t},\n\t{\n\t\t\"prefix\": 54,\n\t\t\"network\": \"cere\",\n\t\t\"displayName\": \"Cere Network\",\n\t\t\"symbols\": [\n\t\t\t\"CERE\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://cere.network\"\n\t},\n\t{\n\t\t\"prefix\": 55,\n\t\t\"network\": \"xxnetwork\",\n\t\t\"displayName\": \"xx network\",\n\t\t\"symbols\": [\n\t\t\t\"XX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://xx.network\"\n\t},\n\t{\n\t\t\"prefix\": 56,\n\t\t\"network\": \"pendulum\",\n\t\t\"displayName\": \"Pendulum chain\",\n\t\t\"symbols\": [\n\t\t\t\"PEN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://pendulumchain.org/\"\n\t},\n\t{\n\t\t\"prefix\": 57,\n\t\t\"network\": \"amplitude\",\n\t\t\"displayName\": \"Amplitude chain\",\n\t\t\"symbols\": [\n\t\t\t\"AMPE\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://pendulumchain.org/\"\n\t},\n\t{\n\t\t\"prefix\": 58,\n\t\t\"network\": \"eternal-civilization\",\n\t\t\"displayName\": \"Eternal Civilization\",\n\t\t\"symbols\": [\n\t\t\t\"ECC\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"http://www.ysknfr.cn/\"\n\t},\n\t{\n\t\t\"prefix\": 63,\n\t\t\"network\": \"hydradx\",\n\t\t\"displayName\": \"HydraDX\",\n\t\t\"symbols\": [\n\t\t\t\"HDX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://hydradx.io\"\n\t},\n\t{\n\t\t\"prefix\": 65,\n\t\t\"network\": \"aventus\",\n\t\t\"displayName\": \"Aventus Mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"AVT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://aventus.io\"\n\t},\n\t{\n\t\t\"prefix\": 66,\n\t\t\"network\": \"crust\",\n\t\t\"displayName\": \"Crust Network\",\n\t\t\"symbols\": [\n\t\t\t\"CRU\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://crust.network\"\n\t},\n\t{\n\t\t\"prefix\": 67,\n\t\t\"network\": \"genshiro\",\n\t\t\"displayName\": \"Genshiro Network\",\n\t\t\"symbols\": [\n\t\t\t\"GENS\",\n\t\t\t\"EQD\",\n\t\t\t\"LPT0\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9,\n\t\t\t9,\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://genshiro.equilibrium.io\"\n\t},\n\t{\n\t\t\"prefix\": 68,\n\t\t\"network\": \"equilibrium\",\n\t\t\"displayName\": \"Equilibrium Network\",\n\t\t\"symbols\": [\n\t\t\t\"EQ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://equilibrium.io\"\n\t},\n\t{\n\t\t\"prefix\": 69,\n\t\t\"network\": \"sora\",\n\t\t\"displayName\": \"SORA Network\",\n\t\t\"symbols\": [\n\t\t\t\"XOR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://sora.org\"\n\t},\n\t{\n\t\t\"prefix\": 71,\n\t\t\"network\": \"p3d\",\n\t\t\"displayName\": \"3DP network\",\n\t\t\"symbols\": [\n\t\t\t\"P3D\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://3dpass.org\"\n\t},\n\t{\n\t\t\"prefix\": 72,\n\t\t\"network\": \"p3dt\",\n\t\t\"displayName\": \"3DP test network\",\n\t\t\"symbols\": [\n\t\t\t\"P3Dt\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://3dpass.org\"\n\t},\n\t{\n\t\t\"prefix\": 73,\n\t\t\"network\": \"zeitgeist\",\n\t\t\"displayName\": \"Zeitgeist\",\n\t\t\"symbols\": [\n\t\t\t\"ZTG\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://zeitgeist.pm\"\n\t},\n\t{\n\t\t\"prefix\": 77,\n\t\t\"network\": \"manta\",\n\t\t\"displayName\": \"Manta network\",\n\t\t\"symbols\": [\n\t\t\t\"MANTA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://manta.network\"\n\t},\n\t{\n\t\t\"prefix\": 78,\n\t\t\"network\": \"calamari\",\n\t\t\"displayName\": \"Calamari: Manta Canary Network\",\n\t\t\"symbols\": [\n\t\t\t\"KMA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://manta.network\"\n\t},\n\t{\n\t\t\"prefix\": 81,\n\t\t\"network\": \"sora_dot_para\",\n\t\t\"displayName\": \"SORA Polkadot Parachain\",\n\t\t\"symbols\": [\n\t\t\t\"XOR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://sora.org\"\n\t},\n\t{\n\t\t\"prefix\": 88,\n\t\t\"network\": \"polkadex\",\n\t\t\"displayName\": \"Polkadex Mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"PDEX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polkadex.trade\"\n\t},\n\t{\n\t\t\"prefix\": 89,\n\t\t\"network\": \"polkadexparachain\",\n\t\t\"displayName\": \"Polkadex Parachain\",\n\t\t\"symbols\": [\n\t\t\t\"PDEX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polkadex.trade\"\n\t},\n\t{\n\t\t\"prefix\": 90,\n\t\t\"network\": \"frequency\",\n\t\t\"displayName\": \"Frequency\",\n\t\t\"symbols\": [\n\t\t\t\"FRQCY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t8\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.frequency.xyz\"\n\t},\n\t{\n\t\t\"prefix\": 92,\n\t\t\"network\": \"anmol\",\n\t\t\"displayName\": \"Anmol Network\",\n\t\t\"symbols\": [\n\t\t\t\"ANML\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://anmol.network/\"\n\t},\n\t{\n\t\t\"prefix\": 93,\n\t\t\"network\": \"fragnova\",\n\t\t\"displayName\": \"Fragnova Network\",\n\t\t\"symbols\": [\n\t\t\t\"NOVA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://fragnova.com\"\n\t},\n\t{\n\t\t\"prefix\": 98,\n\t\t\"network\": \"polkasmith\",\n\t\t\"displayName\": \"PolkaSmith Canary Network\",\n\t\t\"symbols\": [\n\t\t\t\"PKS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polkafoundry.com\"\n\t},\n\t{\n\t\t\"prefix\": 99,\n\t\t\"network\": \"polkafoundry\",\n\t\t\"displayName\": \"PolkaFoundry Network\",\n\t\t\"symbols\": [\n\t\t\t\"PKF\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polkafoundry.com\"\n\t},\n\t{\n\t\t\"prefix\": 100,\n\t\t\"network\": \"ibtida\",\n\t\t\"displayName\": \"Anmol Network Ibtida Canary network\",\n\t\t\"symbols\": [\n\t\t\t\"IANML\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://anmol.network/\"\n\t},\n\t{\n\t\t\"prefix\": 101,\n\t\t\"network\": \"origintrail-parachain\",\n\t\t\"displayName\": \"OriginTrail Parachain\",\n\t\t\"symbols\": [\n\t\t\t\"OTP\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://parachain.origintrail.io/\"\n\t},\n\t{\n\t\t\"prefix\": 105,\n\t\t\"network\": \"pontem-network\",\n\t\t\"displayName\": \"Pontem Network\",\n\t\t\"symbols\": [\n\t\t\t\"PONT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://pontem.network\"\n\t},\n\t{\n\t\t\"prefix\": 110,\n\t\t\"network\": \"heiko\",\n\t\t\"displayName\": \"Heiko\",\n\t\t\"symbols\": [\n\t\t\t\"HKO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://parallel.fi/\"\n\t},\n\t{\n\t\t\"prefix\": 113,\n\t\t\"network\": \"integritee-incognito\",\n\t\t\"displayName\": \"Integritee Incognito\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://integritee.network\"\n\t},\n\t{\n\t\t\"prefix\": 117,\n\t\t\"network\": \"tinker\",\n\t\t\"displayName\": \"Tinker\",\n\t\t\"symbols\": [\n\t\t\t\"TNKR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://invarch.network\"\n\t},\n\t{\n\t\t\"prefix\": 126,\n\t\t\"network\": \"joystream\",\n\t\t\"displayName\": \"Joystream\",\n\t\t\"symbols\": [\n\t\t\t\"JOY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.joystream.org\"\n\t},\n\t{\n\t\t\"prefix\": 128,\n\t\t\"network\": \"clover\",\n\t\t\"displayName\": \"Clover Finance\",\n\t\t\"symbols\": [\n\t\t\t\"CLV\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://clover.finance\"\n\t},\n\t{\n\t\t\"prefix\": 129,\n\t\t\"network\": \"dorafactory-polkadot\",\n\t\t\"displayName\": \"Dorafactory Polkadot Network\",\n\t\t\"symbols\": [\n\t\t\t\"DORA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://dorafactory.org\"\n\t},\n\t{\n\t\t\"prefix\": 131,\n\t\t\"network\": \"litmus\",\n\t\t\"displayName\": \"Litmus Network\",\n\t\t\"symbols\": [\n\t\t\t\"LIT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://litentry.com/\"\n\t},\n\t{\n\t\t\"prefix\": 136,\n\t\t\"network\": \"altair\",\n\t\t\"displayName\": \"Altair\",\n\t\t\"symbols\": [\n\t\t\t\"AIR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://centrifuge.io/\"\n\t},\n\t{\n\t\t\"prefix\": 137,\n\t\t\"network\": \"vara\",\n\t\t\"displayName\": \"Vara Network\",\n\t\t\"symbols\": [\n\t\t\t\"VARA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://vara.network/\"\n\t},\n\t{\n\t\t\"prefix\": 172,\n\t\t\"network\": \"parallel\",\n\t\t\"displayName\": \"Parallel\",\n\t\t\"symbols\": [\n\t\t\t\"PARA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://parallel.fi/\"\n\t},\n\t{\n\t\t\"prefix\": 252,\n\t\t\"network\": \"social-network\",\n\t\t\"displayName\": \"Social Network\",\n\t\t\"symbols\": [\n\t\t\t\"NET\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://social.network\"\n\t},\n\t{\n\t\t\"prefix\": 255,\n\t\t\"network\": \"quartz_mainnet\",\n\t\t\"displayName\": \"QUARTZ by UNIQUE\",\n\t\t\"symbols\": [\n\t\t\t\"QTZ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://unique.network\"\n\t},\n\t{\n\t\t\"prefix\": 268,\n\t\t\"network\": \"pioneer_network\",\n\t\t\"displayName\": \"Pioneer Network by Bit.Country\",\n\t\t\"symbols\": [\n\t\t\t\"NEER\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://bit.country\"\n\t},\n\t{\n\t\t\"prefix\": 420,\n\t\t\"network\": \"sora_kusama_para\",\n\t\t\"displayName\": \"SORA Kusama Parachain\",\n\t\t\"symbols\": [\n\t\t\t\"XOR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://sora.org\"\n\t},\n\t{\n\t\t\"prefix\": 440,\n\t\t\"network\": \"allfeat_network\",\n\t\t\"displayName\": \"Allfeat Network\",\n\t\t\"symbols\": [\n\t\t\t\"AFT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://allfeat.network\"\n\t},\n\t{\n\t\t\"prefix\": 666,\n\t\t\"network\": \"metaquity_network\",\n\t\t\"displayName\": \"Metaquity Network\",\n\t\t\"symbols\": [\n\t\t\t\"MQTY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://metaquity.xyz/\"\n\t},\n\t{\n\t\t\"prefix\": 777,\n\t\t\"network\": \"curio\",\n\t\t\"displayName\": \"Curio\",\n\t\t\"symbols\": [\n\t\t\t\"CGT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://parachain.capitaldex.exchange/\"\n\t},\n\t{\n\t\t\"prefix\": 789,\n\t\t\"network\": \"geek\",\n\t\t\"displayName\": \"GEEK Network\",\n\t\t\"symbols\": [\n\t\t\t\"GEEK\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://geek.gl\"\n\t},\n\t{\n\t\t\"prefix\": 995,\n\t\t\"network\": \"ternoa\",\n\t\t\"displayName\": \"Ternoa\",\n\t\t\"symbols\": [\n\t\t\t\"CAPS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.ternoa.network\"\n\t},\n\t{\n\t\t\"prefix\": 1110,\n\t\t\"network\": \"efinity\",\n\t\t\"displayName\": \"Efinity\",\n\t\t\"symbols\": [\n\t\t\t\"EFI\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://efinity.io/\"\n\t},\n\t{\n\t\t\"prefix\": 1221,\n\t\t\"network\": \"peaq\",\n\t\t\"displayName\": \"Peaq Network\",\n\t\t\"symbols\": [\n\t\t\t\"PEAQ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"Sr25519\",\n\t\t\"website\": \"https://www.peaq.network/\"\n\t},\n\t{\n\t\t\"prefix\": 1222,\n\t\t\"network\": \"krest\",\n\t\t\"displayName\": \"Krest Network\",\n\t\t\"symbols\": [\n\t\t\t\"KREST\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"Sr25519\",\n\t\t\"website\": \"https://www.peaq.network/\"\n\t},\n\t{\n\t\t\"prefix\": 1284,\n\t\t\"network\": \"moonbeam\",\n\t\t\"displayName\": \"Moonbeam\",\n\t\t\"symbols\": [\n\t\t\t\"GLMR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://moonbeam.network\"\n\t},\n\t{\n\t\t\"prefix\": 1285,\n\t\t\"network\": \"moonriver\",\n\t\t\"displayName\": \"Moonriver\",\n\t\t\"symbols\": [\n\t\t\t\"MOVR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://moonbeam.network\"\n\t},\n\t{\n\t\t\"prefix\": 1328,\n\t\t\"network\": \"ajuna\",\n\t\t\"displayName\": \"Ajuna Network\",\n\t\t\"symbols\": [\n\t\t\t\"AJUN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://ajuna.io\"\n\t},\n\t{\n\t\t\"prefix\": 1337,\n\t\t\"network\": \"bajun\",\n\t\t\"displayName\": \"Bajun Network\",\n\t\t\"symbols\": [\n\t\t\t\"BAJU\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://ajuna.io\"\n\t},\n\t{\n\t\t\"prefix\": 1516,\n\t\t\"network\": \"societal\",\n\t\t\"displayName\": \"Societal\",\n\t\t\"symbols\": [\n\t\t\t\"SCTL\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.sctl.xyz\"\n\t},\n\t{\n\t\t\"prefix\": 1985,\n\t\t\"network\": \"seals\",\n\t\t\"displayName\": \"Seals Network\",\n\t\t\"symbols\": [\n\t\t\t\"SEAL\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://seals.app\"\n\t},\n\t{\n\t\t\"prefix\": 2007,\n\t\t\"network\": \"kapex\",\n\t\t\"displayName\": \"Kapex\",\n\t\t\"symbols\": [\n\t\t\t\"KAPEX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://totemaccounting.com\"\n\t},\n\t{\n\t\t\"prefix\": 2009,\n\t\t\"network\": \"cloudwalk_mainnet\",\n\t\t\"displayName\": \"CloudWalk Network Mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"CWN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://explorer.mainnet.cloudwalk.io\"\n\t},\n\t{\n\t\t\"prefix\": 2021,\n\t\t\"network\": \"logion\",\n\t\t\"displayName\": \"logion network\",\n\t\t\"symbols\": [\n\t\t\t\"LGNT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://logion.network\"\n\t},\n\t{\n\t\t\"prefix\": 2032,\n\t\t\"network\": \"interlay\",\n\t\t\"displayName\": \"Interlay\",\n\t\t\"symbols\": [\n\t\t\t\"INTR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://interlay.io/\"\n\t},\n\t{\n\t\t\"prefix\": 2092,\n\t\t\"network\": \"kintsugi\",\n\t\t\"displayName\": \"Kintsugi\",\n\t\t\"symbols\": [\n\t\t\t\"KINT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://interlay.io/\"\n\t},\n\t{\n\t\t\"prefix\": 2106,\n\t\t\"network\": \"bitgreen\",\n\t\t\"displayName\": \"Bitgreen\",\n\t\t\"symbols\": [\n\t\t\t\"BBB\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://bitgreen.org/\"\n\t},\n\t{\n\t\t\"prefix\": 2112,\n\t\t\"network\": \"chainflip\",\n\t\t\"displayName\": \"Chainflip\",\n\t\t\"symbols\": [\n\t\t\t\"FLIP\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://chainflip.io/\"\n\t},\n\t{\n\t\t\"prefix\": 2199,\n\t\t\"network\": \"moonsama\",\n\t\t\"displayName\": \"Moonsama\",\n\t\t\"symbols\": [\n\t\t\t\"SAMA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://moonsama.com\"\n\t},\n\t{\n\t\t\"prefix\": 2206,\n\t\t\"network\": \"ICE\",\n\t\t\"displayName\": \"ICE Network\",\n\t\t\"symbols\": [\n\t\t\t\"ICY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://icenetwork.io\"\n\t},\n\t{\n\t\t\"prefix\": 2207,\n\t\t\"network\": \"SNOW\",\n\t\t\"displayName\": \"SNOW: ICE Canary Network\",\n\t\t\"symbols\": [\n\t\t\t\"ICZ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://icenetwork.io\"\n\t},\n\t{\n\t\t\"prefix\": 2254,\n\t\t\"network\": \"subspace_testnet\",\n\t\t\"displayName\": \"Subspace testnet\",\n\t\t\"symbols\": [\n\t\t\t\"tSSC\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://subspace.network\"\n\t},\n\t{\n\t\t\"prefix\": 3333,\n\t\t\"network\": \"peerplays\",\n\t\t\"displayName\": \"Peerplays\",\n\t\t\"symbols\": [\n\t\t\t\"PPY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://www.peerplays.com/\"\n\t},\n\t{\n\t\t\"prefix\": 4450,\n\t\t\"network\": \"g1\",\n\t\t\"displayName\": \"Ğ1\",\n\t\t\"symbols\": [\n\t\t\t\"G1\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t2\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://duniter.org\"\n\t},\n\t{\n\t\t\"prefix\": 5234,\n\t\t\"network\": \"humanode\",\n\t\t\"displayName\": \"Humanode Network\",\n\t\t\"symbols\": [\n\t\t\t\"HMND\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://humanode.io\"\n\t},\n\t{\n\t\t\"prefix\": 5845,\n\t\t\"network\": \"tangle\",\n\t\t\"displayName\": \"Tangle Network\",\n\t\t\"symbols\": [\n\t\t\t\"TNT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.tangle.tools/\"\n\t},\n\t{\n\t\t\"prefix\": 6094,\n\t\t\"network\": \"subspace\",\n\t\t\"displayName\": \"Subspace\",\n\t\t\"symbols\": [\n\t\t\t\"SSC\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://subspace.network\"\n\t},\n\t{\n\t\t\"prefix\": 7007,\n\t\t\"network\": \"tidefi\",\n\t\t\"displayName\": \"Tidefi\",\n\t\t\"symbols\": [\n\t\t\t\"TDFY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://tidefi.com\"\n\t},\n\t{\n\t\t\"prefix\": 7013,\n\t\t\"network\": \"gm\",\n\t\t\"displayName\": \"GM\",\n\t\t\"symbols\": [\n\t\t\t\"FREN\",\n\t\t\t\"GM\",\n\t\t\t\"GN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://gmordie.com\"\n\t},\n\t{\n\t\t\"prefix\": 7306,\n\t\t\"network\": \"krigan\",\n\t\t\"displayName\": \"Krigan Network\",\n\t\t\"symbols\": [\n\t\t\t\"KRGN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://krigan.network\"\n\t},\n\t{\n\t\t\"prefix\": 7391,\n\t\t\"network\": \"unique_mainnet\",\n\t\t\"displayName\": \"Unique Network\",\n\t\t\"symbols\": [\n\t\t\t\"UNQ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://unique.network\"\n\t},\n\t{\n\t\t\"prefix\": 8866,\n\t\t\"network\": \"golden_gate\",\n\t\t\"displayName\": \"Golden Gate\",\n\t\t\"symbols\": [\n\t\t\t\"GGX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://ggxchain.io/\"\n\t},\n\t{\n\t\t\"prefix\": 8883,\n\t\t\"network\": \"sapphire_mainnet\",\n\t\t\"displayName\": \"Sapphire by Unique\",\n\t\t\"symbols\": [\n\t\t\t\"QTZ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://unique.network\"\n\t},\n\t{\n\t\t\"prefix\": 8886,\n\t\t\"network\": \"golden_gate_sydney\",\n\t\t\"displayName\": \"Golden Gate Sydney\",\n\t\t\"symbols\": [\n\t\t\t\"GGXT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://ggxchain.io/\"\n\t},\n\t{\n\t\t\"prefix\": 9072,\n\t\t\"network\": \"hashed\",\n\t\t\"displayName\": \"Hashed Network\",\n\t\t\"symbols\": [\n\t\t\t\"HASH\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://hashed.network\"\n\t},\n\t{\n\t\t\"prefix\": 9807,\n\t\t\"network\": \"dentnet\",\n\t\t\"displayName\": \"DENTNet\",\n\t\t\"symbols\": [\n\t\t\t\"DENTX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.dentnet.io\"\n\t},\n\t{\n\t\t\"prefix\": 9935,\n\t\t\"network\": \"t3rn\",\n\t\t\"displayName\": \"t3rn\",\n\t\t\"symbols\": [\n\t\t\t\"TRN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://t3rn.io/\"\n\t},\n\t{\n\t\t\"prefix\": 10041,\n\t\t\"network\": \"basilisk\",\n\t\t\"displayName\": \"Basilisk\",\n\t\t\"symbols\": [\n\t\t\t\"BSX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://bsx.fi\"\n\t},\n\t{\n\t\t\"prefix\": 11330,\n\t\t\"network\": \"cess-testnet\",\n\t\t\"displayName\": \"CESS Testnet\",\n\t\t\"symbols\": [\n\t\t\t\"TCESS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://cess.cloud\"\n\t},\n\t{\n\t\t\"prefix\": 11331,\n\t\t\"network\": \"cess\",\n\t\t\"displayName\": \"CESS\",\n\t\t\"symbols\": [\n\t\t\t\"CESS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://cess.cloud\"\n\t},\n\t{\n\t\t\"prefix\": 11486,\n\t\t\"network\": \"luhn\",\n\t\t\"displayName\": \"Luhn Network\",\n\t\t\"symbols\": [\n\t\t\t\"LUHN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://luhn.network\"\n\t},\n\t{\n\t\t\"prefix\": 11820,\n\t\t\"network\": \"contextfree\",\n\t\t\"displayName\": \"Automata ContextFree\",\n\t\t\"symbols\": [\n\t\t\t\"CTX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://ata.network\"\n\t},\n\t{\n\t\t\"prefix\": 12155,\n\t\t\"network\": \"impact\",\n\t\t\"displayName\": \"Impact Protocol Network\",\n\t\t\"symbols\": [\n\t\t\t\"BSTY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://impactprotocol.network/\"\n\t},\n\t{\n\t\t\"prefix\": 12191,\n\t\t\"network\": \"nftmart\",\n\t\t\"displayName\": \"NFTMart\",\n\t\t\"symbols\": [\n\t\t\t\"NMT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://nftmart.io\"\n\t},\n\t{\n\t\t\"prefix\": 13116,\n\t\t\"network\": \"bittensor\",\n\t\t\"displayName\": \"Bittensor\",\n\t\t\"symbols\": [\n\t\t\t\"TAO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://bittensor.com\"\n\t},\n\t{\n\t\t\"prefix\": 14697,\n\t\t\"network\": \"goro\",\n\t\t\"displayName\": \"GORO Network\",\n\t\t\"symbols\": [\n\t\t\t\"GORO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://goro.network\"\n\t}\n];\n","export const knownLedger = {\n    acala: 0x00000313,\n    ajuna: 0x00000162,\n    'aleph-node': 0x00000283,\n    astar: 0x0000032a,\n    bifrost: 0x00000314,\n    'bifrost-kusama': 0x00000314,\n    centrifuge: 0x000002eb,\n    composable: 0x00000162,\n    darwinia: 0x00000162,\n    'dock-mainnet': 0x00000252,\n    edgeware: 0x0000020b,\n    enjin: 0x00000483,\n    equilibrium: 0x05f5e0fd,\n    genshiro: 0x05f5e0fc,\n    hydradx: 0x00000162,\n    'interlay-parachain': 0x00000162,\n    karura: 0x000002ae,\n    khala: 0x000001b2,\n    kusama: 0x000001b2,\n    matrixchain: 0x00000483,\n    nodle: 0x000003eb,\n    origintrail: 0x00000162,\n    parallel: 0x00000162,\n    pendulum: 0x00000162,\n    phala: 0x00000162,\n    picasso: 0x000001b2,\n    polkadex: 0x0000031f,\n    polkadot: 0x00000162,\n    polymesh: 0x00000253,\n    sora: 0x00000269,\n    stafi: 0x0000038b,\n    statemine: 0x000001b2,\n    statemint: 0x00000162,\n    ternoa: 0x00003e3,\n    unique: 0x00000162,\n    vtb: 0x000002b6,\n    xxnetwork: 0x000007a3,\n    zeitgeist: 0x00000162\n};\n","export const knownGenesis = {\n    acala: [\n        '0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c'\n    ],\n    ajuna: [\n        '0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee'\n    ],\n    'aleph-node': [\n        '0x70255b4d28de0fc4e1a193d7e175ad1ccef431598211c55538f1018651a0344e'\n    ],\n    astar: [\n        '0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6'\n    ],\n    basilisk: [\n        '0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755'\n    ],\n    bifrost: [\n        '0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b'\n    ],\n    'bifrost-kusama': [\n        '0x9f28c6a68e0fc9646eff64935684f6eeeece527e37bbe1f213d22caa1d9d6bed'\n    ],\n    bittensor: [\n        '0x2f0555cc76fc2840a25a6ea3b9637146806f1f44b090c175ffde2a7e5ab36c03'\n    ],\n    centrifuge: [\n        '0xb3db41421702df9a7fcac62b53ffeac85f7853cc4e689e0b93aeb3db18c09d82',\n        '0x67dddf2673b69e5f875f6f25277495834398eafd67f492e09f3f3345e003d1b5'\n    ],\n    cere: [\n        '0x81443836a9a24caaa23f1241897d1235717535711d1d3fe24eae4fdc942c092c'\n    ],\n    composable: [\n        '0xdaab8df776eb52ec604a5df5d388bb62a050a0aaec4556a64265b9d42755552d'\n    ],\n    darwinia: [\n        '0xe71578b37a7c799b0ab4ee87ffa6f059a6b98f71f06fb8c84a8d88013a548ad6'\n    ],\n    'dock-mainnet': [\n        '0x6bfe24dca2a3be10f22212678ac13a6446ec764103c0f3471c71609eac384aae',\n        '0xf73467c6544aa68df2ee546b135f955c46b90fa627e9b5d7935f41061bb8a5a9'\n    ],\n    edgeware: [\n        '0x742a2ca70c2fda6cee4f8df98d64c4c670a052d9568058982dad9d5a7a135c5b'\n    ],\n    enjin: [\n        '0xd8761d3c88f26dc12875c00d3165f7d67243d56fc85b4cf19937601a7916e5a9'\n    ],\n    equilibrium: [\n        '0x6f1a800de3daff7f5e037ddf66ab22ce03ab91874debeddb1086f5f7dbd48925'\n    ],\n    genshiro: [\n        '0x9b8cefc0eb5c568b527998bdd76c184e2b76ae561be76e4667072230217ea243'\n    ],\n    hydradx: [\n        '0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d',\n        '0xd2a620c27ec5cbc5621ff9a522689895074f7cca0d08e7134a7804e1a3ba86fc',\n        '0x10af6e84234477d84dc572bac0789813b254aa490767ed06fb9591191d1073f9',\n        '0x3d75507dd46301767e601265791da1d9cb47b6ebc94e87347b635e5bf58bd047',\n        '0x0ed32bfcab4a83517fac88f2aa7cbc2f88d3ab93be9a12b6188a036bf8a943c2' // Snakenet Gen1\n    ],\n    'interlay-parachain': [\n        '0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72'\n    ],\n    karura: [\n        '0xbaf5aabe40646d11f0ee8abbdc64f4a4b7674925cba08e4a05ff9ebed6e2126b'\n    ],\n    khala: [\n        '0xd43540ba6d3eb4897c28a77d48cb5b729fea37603cbbfc7a86a73b72adb3be8d'\n    ],\n    kulupu: [\n        '0xf7a99d3cb92853d00d5275c971c132c074636256583fee53b3bbe60d7b8769ba'\n    ],\n    kusama: [\n        '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n        '0xe3777fa922cafbff200cadeaea1a76bd7898ad5b89f7848999058b50e715f636',\n        '0x3fd7b9eb6a00376e5be61f01abb429ffb0b104be05eaff4d458da48fcd425baf' // Kusama CC1\n    ],\n    matrixchain: [\n        '0x3af4ff48ec76d2efc8476730f423ac07e25ad48f5f4c9dc39c778b164d808615'\n    ],\n    nodle: [\n        '0x97da7ede98d7bad4e36b4d734b6055425a3be036da2a332ea5a7037656427a21'\n    ],\n    origintrail: [\n        '0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174'\n    ],\n    p3d: [\n        '0x6c5894837ad89b6d92b114a2fb3eafa8fe3d26a54848e3447015442cd6ef4e66'\n    ],\n    parallel: [\n        '0xe61a41c53f5dcd0beb09df93b34402aada44cb05117b71059cce40a2723a4e97'\n    ],\n    pendulum: [\n        '0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86'\n    ],\n    phala: [\n        '0x1bb969d85965e4bb5a651abbedf21a54b6b31a21f66b5401cc3f1e286268d736'\n    ],\n    picasso: [\n        '0x6811a339673c9daa897944dcdac99c6e2939cc88245ed21951a0a3c9a2be75bc',\n        '0xe8e7f0f4c4f5a00720b4821dbfddefea7490bcf0b19009961cc46957984e2c1c'\n    ],\n    polkadex: [\n        '0x3920bcb4960a1eef5580cd5367ff3f430eef052774f78468852f7b9cb39f8a3c'\n    ],\n    polkadot: [\n        '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3'\n    ],\n    polymesh: [\n        '0x6fbd74e5e1d0a61d52ccfe9d4adaed16dd3a7caa37c6bc4d0c2fa12e8b2f4063'\n    ],\n    rococo: [\n        '0x6408de7737c59c238890533af25896a2c20608d8b380bb01029acb392781063e',\n        '0xaaf2cd1b74b5f726895921259421b534124726263982522174147046b8827897',\n        '0x037f5f3c8e67b314062025fc886fcd6238ea25a4a9b45dce8d246815c9ebe770',\n        '0xc196f81260cf1686172b47a79cf002120735d7cb0eb1474e8adce56618456fff',\n        '0xf6e9983c37baf68846fedafe21e56718790e39fb1c582abc408b81bc7b208f9a',\n        '0x5fce687da39305dfe682b117f0820b319348e8bb37eb16cf34acbf6a202de9d9',\n        '0xe7c3d5edde7db964317cd9b51a3a059d7cd99f81bdbce14990047354334c9779',\n        '0x1611e1dbf0405379b861e2e27daa90f480b2e6d3682414a80835a52e8cb8a215',\n        '0x343442f12fa715489a8714e79a7b264ea88c0d5b8c66b684a7788a516032f6b9',\n        '0x78bcd530c6b3a068bc17473cf5d2aff9c287102bed9af3ae3c41c33b9d6c6147',\n        '0x47381ee0697153d64404fc578392c8fd5cba9073391908f46c888498415647bd',\n        '0x19c0e4fa8ab75f5ac7865e0b8f74ff91eb9a100d336f423cd013a8befba40299'\n    ],\n    sora: [\n        '0x7e4e32d0feafd4f9c9414b0be86373f9a1efa904809b683453a9af6856d38ad5'\n    ],\n    stafi: [\n        '0x290a4149f09ea0e402c74c1c7e96ae4239588577fe78932f94f5404c68243d80'\n    ],\n    statemine: [\n        '0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a'\n    ],\n    statemint: [\n        '0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f'\n    ],\n    subsocial: [\n        '0x0bd72c1c305172e1275278aaeb3f161e02eccb7a819e63f62d47bd53a28189f8'\n    ],\n    ternoa: [\n        '0x6859c81ca95ef624c9dfe4dc6e3381c33e5d6509e35e147092bfbc780f777c4e'\n    ],\n    unique: [\n        '0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31'\n    ],\n    vtb: [\n        '0x286bc8414c7000ce1d6ee6a834e29a54c1784814b76243eb77ed0b2c5573c60f',\n        '0x7483b89572fb2bd687c7b9a93b242d0b237f9aba463aba07ec24503931038aaa'\n    ],\n    westend: [\n        '0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e'\n    ],\n    xxnetwork: [\n        '0x50dd5d206917bf10502c68fb4d18a59fc8aa31586f4e8856b493e43544aa82aa'\n    ],\n    zeitgeist: [\n        '0x1bf2a2ecb4a868de66ea8610f2ce7c8c43706561b6476031315f6640fe38e060'\n    ]\n};\n","export const knownIcon = {\n    centrifuge: 'polkadot',\n    kusama: 'polkadot',\n    polkadot: 'polkadot',\n    sora: 'polkadot',\n    statemine: 'polkadot',\n    statemint: 'polkadot',\n    westmint: 'polkadot'\n};\n","export const knownTestnet = {\n    '': true,\n    'cess-testnet': true,\n    'dock-testnet': true,\n    jupiter: true,\n    'mathchain-testnet': true,\n    p3dt: true,\n    subspace_testnet: true,\n    'zero-alphaville': true\n};\n","import knownSubstrate from '@substrate/ss58-registry';\nimport { knownGenesis, knownIcon, knownLedger, knownTestnet } from './defaults/index.js';\nconst UNSORTED = [0, 2, 42];\nconst TESTNETS = ['testnet'];\nfunction toExpanded(o) {\n    const network = o.network || '';\n    const nameParts = network.replace(/_/g, '-').split('-');\n    const n = o;\n    // ledger additions\n    n.slip44 = knownLedger[network];\n    n.hasLedgerSupport = !!n.slip44;\n    // general items\n    n.genesisHash = knownGenesis[network] || [];\n    n.icon = knownIcon[network] || 'substrate';\n    // filtering\n    n.isTestnet = !!knownTestnet[network] || TESTNETS.includes(nameParts[nameParts.length - 1]);\n    n.isIgnored = n.isTestnet || (!(o.standardAccount &&\n        o.decimals?.length &&\n        o.symbols?.length) &&\n        o.prefix !== 42);\n    return n;\n}\nfunction filterSelectable({ genesisHash, prefix }) {\n    return !!genesisHash.length || prefix === 42;\n}\nfunction filterAvailable(n) {\n    return !n.isIgnored && !!n.network;\n}\nfunction sortNetworks(a, b) {\n    const isUnSortedA = UNSORTED.includes(a.prefix);\n    const isUnSortedB = UNSORTED.includes(b.prefix);\n    return isUnSortedA === isUnSortedB\n        ? isUnSortedA\n            ? 0\n            : a.displayName.localeCompare(b.displayName)\n        : isUnSortedA\n            ? -1\n            : 1;\n}\nexport const allNetworks = knownSubstrate.map(toExpanded);\nexport const availableNetworks = allNetworks.filter(filterAvailable).sort(sortNetworks);\nexport const selectableNetworks = availableNetworks.filter(filterSelectable);\n","import { availableNetworks } from '../networks.js';\nexport const defaults = {\n    allowedDecodedLengths: [1, 2, 4, 8, 32, 33],\n    // publicKey has prefix + 2 checksum bytes, short only prefix + 1 checksum byte\n    allowedEncodedLengths: [3, 4, 6, 10, 35, 36, 37, 38],\n    allowedPrefix: availableNetworks.map(({ prefix }) => prefix),\n    prefix: 42\n};\n","import { isHex, isU8a, u8aToU8a } from '@polkadot/util';\nimport { base58Decode } from '../base58/index.js';\nimport { checkAddressChecksum } from './checksum.js';\nimport { defaults } from './defaults.js';\nexport function decodeAddress(encoded, ignoreChecksum, ss58Format = -1) {\n    if (!encoded) {\n        throw new Error('Invalid empty address passed');\n    }\n    if (isU8a(encoded) || isHex(encoded)) {\n        return u8aToU8a(encoded);\n    }\n    try {\n        const decoded = base58Decode(encoded);\n        if (!defaults.allowedEncodedLengths.includes(decoded.length)) {\n            throw new Error('Invalid decoded address length');\n        }\n        const [isValid, endPos, ss58Length, ss58Decoded] = checkAddressChecksum(decoded);\n        if (!isValid && !ignoreChecksum) {\n            throw new Error('Invalid decoded address checksum');\n        }\n        else if (ss58Format !== -1 && ss58Format !== ss58Decoded) {\n            throw new Error(`Expected ss58Format ${ss58Format}, received ${ss58Decoded}`);\n        }\n        return decoded.slice(ss58Length, endPos);\n    }\n    catch (error) {\n        throw new Error(`Decoding ${encoded}: ${error.message}`);\n    }\n}\n","import { sshash } from './sshash.js';\nexport function checkAddressChecksum(decoded) {\n    const ss58Length = (decoded[0] & 64) ? 2 : 1;\n    const ss58Decoded = ss58Length === 1\n        ? decoded[0]\n        : ((decoded[0] & 63) << 2) | (decoded[1] >> 6) | ((decoded[1] & 63) << 8);\n    // 32/33 bytes public + 2 bytes checksum + prefix\n    const isPublicKey = [34 + ss58Length, 35 + ss58Length].includes(decoded.length);\n    const length = decoded.length - (isPublicKey ? 2 : 1);\n    // calculate the hash and do the checksum byte checks\n    const hash = sshash(decoded.subarray(0, length));\n    const isValid = (decoded[0] & 128) === 0 && ![46, 47].includes(decoded[0]) && (isPublicKey\n        ? decoded[decoded.length - 2] === hash[0] && decoded[decoded.length - 1] === hash[1]\n        : decoded[decoded.length - 1] === hash[0]);\n    return [isValid, length, ss58Length, ss58Decoded];\n}\n","// Copyright 2018-2022 @polkadot/ui-shared authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n// Copyright 2018 Paritytech via paritytech/oo7/polkadot-identicon\n// This has been converted from the original version that can be found at\n//\n// https://github.com/paritytech/oo7/blob/251ba2b7c45503b68eab4320c270b5afa9bccb60/packages/polkadot-identicon/src/index.jsx\nimport { blake2AsU8a, decodeAddress } from '@polkadot/util-crypto';\n\nconst blake2 = value => blake2AsU8a(value, 512);\n\nconst S = 64;\nconst C = S / 2;\nconst Z = S / 64 * 5;\n/* eslint-disable sort-keys */\n\nconst SCHEMA = {\n  target: {\n    colors: [0, 28, 0, 0, 28, 0, 0, 28, 0, 0, 28, 0, 0, 28, 0, 0, 28, 0, 1],\n    freq: 1\n  },\n  cube: {\n    colors: [0, 1, 3, 2, 4, 3, 0, 1, 3, 2, 4, 3, 0, 1, 3, 2, 4, 3, 5],\n    freq: 20\n  },\n  quazar: {\n    colors: [1, 2, 3, 1, 2, 4, 5, 5, 4, 1, 2, 3, 1, 2, 4, 5, 5, 4, 0],\n    freq: 16\n  },\n  flower: {\n    colors: [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 3],\n    freq: 32\n  },\n  cyclic: {\n    colors: [0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6],\n    freq: 32\n  },\n  vmirror: {\n    colors: [0, 1, 2, 3, 4, 5, 3, 4, 2, 0, 1, 6, 7, 8, 9, 7, 8, 6, 10],\n    freq: 128\n  },\n  hmirror: {\n    colors: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 8, 6, 7, 5, 3, 4, 2, 11],\n    freq: 128\n  }\n};\n/* eslint-enable sort-keys */\n\nconst OUTER_CIRCLE = {\n  cx: C,\n  cy: C,\n  fill: '#eee',\n  r: C\n};\nlet zeroHash = new Uint8Array();\n\nfunction getRotation(isSixPoint) {\n  const r = isSixPoint ? C / 8 * 5 : C / 4 * 3;\n  const rroot3o2 = r * Math.sqrt(3) / 2;\n  const ro2 = r / 2;\n  const rroot3o4 = r * Math.sqrt(3) / 4;\n  const ro4 = r / 4;\n  const r3o4 = r * 3 / 4;\n  return {\n    r,\n    r3o4,\n    ro2,\n    ro4,\n    rroot3o2,\n    rroot3o4\n  };\n}\n\nfunction getCircleXY(isSixPoint) {\n  const {\n    r,\n    r3o4,\n    ro2,\n    ro4,\n    rroot3o2,\n    rroot3o4\n  } = getRotation(isSixPoint);\n  return [[C, C - r], [C, C - ro2], [C - rroot3o4, C - r3o4], [C - rroot3o2, C - ro2], [C - rroot3o4, C - ro4], [C - rroot3o2, C], [C - rroot3o2, C + ro2], [C - rroot3o4, C + ro4], [C - rroot3o4, C + r3o4], [C, C + r], [C, C + ro2], [C + rroot3o4, C + r3o4], [C + rroot3o2, C + ro2], [C + rroot3o4, C + ro4], [C + rroot3o2, C], [C + rroot3o2, C - ro2], [C + rroot3o4, C - ro4], [C + rroot3o4, C - r3o4], [C, C]];\n}\n\nfunction findScheme(d) {\n  let cum = 0;\n  const schema = Object.values(SCHEMA).find(schema => {\n    cum += schema.freq;\n    return d < cum;\n  });\n\n  if (!schema) {\n    throw new Error('Unable to find schema');\n  }\n\n  return schema;\n}\n\nfunction addressToId(address) {\n  if (!zeroHash.length) {\n    zeroHash = blake2(new Uint8Array(32));\n  }\n\n  return blake2(decodeAddress(address)).map((x, i) => (x + 256 - zeroHash[i]) % 256);\n}\n\nfunction getColors(address) {\n  const total = Object.values(SCHEMA).map(s => s.freq).reduce((a, b) => a + b);\n  const id = addressToId(address);\n  const d = Math.floor((id[30] + id[31] * 256) % total);\n  const rot = id[28] % 6 * 3;\n  const sat = Math.floor(id[29] * 70 / 256 + 26) % 80 + 30;\n  const scheme = findScheme(d);\n  const palette = Array.from(id).map((x, i) => {\n    const b = (x + i % 28 * 58) % 256;\n\n    if (b === 0) {\n      return '#444';\n    } else if (b === 255) {\n      return 'transparent';\n    }\n\n    const h = Math.floor(b % 64 * 360 / 64);\n    const l = [53, 15, 35, 75][Math.floor(b / 64)];\n    return `hsl(${h}, ${sat}%, ${l}%)`;\n  });\n  return scheme.colors.map((_, i) => palette[scheme.colors[i < 18 ? (i + rot) % 18 : 18]]);\n}\n/**\n * @description Generate a array of the circles that make up an identicon\n */\n\n\nexport function polkadotIcon(address, {\n  isAlternative\n}) {\n  const xy = getCircleXY(isAlternative);\n  let colors;\n\n  try {\n    // in some cases, e.g. RN where crypto may not be initialized, chaos can\n    // happen when hashing, in these cases we just fill with a placeholder\n    colors = getColors(address);\n  } catch {\n    colors = new Array(xy.length).fill('#ddd');\n  }\n\n  return [OUTER_CIRCLE].concat(xy.map(([cx, cy], index) => ({\n    cx,\n    cy,\n    fill: colors[index],\n    r: Z\n  })));\n}","// extracted by mini-css-extract-plugin\nexport default {\"Identicon\":\"Identicon_Identicon__HE5QR\"};","import React, { useState } from 'react'\nimport { polkadotIcon } from '@polkadot/ui-shared'\n\nimport styles from './Identicon.module.css'\n\ninterface AddressIconProps {\n  address: string\n  size: number\n}\n\nconst AddressIcon: React.FC<AddressIconProps> = ({ address, size }) => {\n  const circles = polkadotIcon(address, { isAlternative: false })\n\n  return (\n    <svg width={size} height={size} viewBox=\"0 0 64 64\">\n      {circles.map((circle) => (\n        <circle cx={circle.cx} cy={circle.cy} fill={circle.fill} r={circle.r} />\n      ))}\n    </svg>\n  )\n}\n\ninterface CheckmarkIconProps {\n  fill: string\n  size: number\n}\n\nconst CheckmarkIcon: React.FC<CheckmarkIconProps> = ({ fill, size }) => {\n  return (\n    <svg width={size} height={size} viewBox=\"0 0 500 500\">\n      <g>\n        <path\n          fill={fill}\n          d=\"M418.275,418.275c95.7-95.7,95.7-250.8,0-346.5s-250.8-95.7-346.5,0s-95.7,250.8,0,346.5S322.675,513.975,418.275,418.275\n\t\t\tz M157.175,207.575l55.1,55.1l120.7-120.6l42.7,42.7l-120.6,120.6l-42.8,42.7l-42.7-42.7l-55.1-55.1L157.175,207.575z\"\n        />\n      </g>\n    </svg>\n  )\n}\n\nexport interface Props {\n  address: string\n  size?: number\n}\n\nexport const Identicon: React.FC<Props> = ({ address, size = 46 }) => {\n  const [didCopy, setDidCopy] = useState(false)\n\n  function copyAddress(e: React.MouseEvent<Element>) {\n    e.stopPropagation()\n    if (navigator.clipboard) {\n      navigator.clipboard.writeText(address).then(() => {\n        setDidCopy(true)\n        setTimeout(() => {\n          setDidCopy(false)\n        }, 1500)\n      })\n    }\n  }\n\n  return (\n    <div\n      className={styles.Identicon}\n      style={{ width: size, height: size }}\n      onClick={copyAddress}\n    >\n      {didCopy ? (\n        <CheckmarkIcon size={size} fill=\"#FFFFFF\" />\n      ) : (\n        <AddressIcon size={size} address={address} />\n      )}\n    </div>\n  )\n}\n\nexport const IdenticonMemo = React.memo(Identicon)\n","/**\n * @name objectSpread\n * @summary Concats all sources into the destination\n */\nexport function objectSpread(dest, ...sources) {\n    for (let i = 0, count = sources.length; i < count; i++) {\n        const src = sources[i];\n        if (src) {\n            if (typeof src.entries === 'function') {\n                for (const [key, value] of src.entries()) {\n                    dest[key] = value;\n                }\n            }\n            else {\n                Object.assign(dest, src);\n            }\n        }\n    }\n    return dest;\n}\n","import { u8aToU8a } from './toU8a.js';\n/**\n * @name u8aEq\n * @summary Compares two Uint8Arrays for equality.\n * @description\n * For `UInt8Array` (or hex string) input values true if there is a match.\n * @example\n * <BR>\n *\n * ```javascript\n * import { u8aEq } from '@polkadot/util';\n *\n * u8aEq(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // true\n * ```\n */\nexport function u8aEq(a, b) {\n    const u8aa = u8aToU8a(a);\n    const u8ab = u8aToU8a(b);\n    if (u8aa.length === u8ab.length) {\n        const dvA = new DataView(u8aa.buffer, u8aa.byteOffset);\n        const dvB = new DataView(u8ab.buffer, u8ab.byteOffset);\n        const mod = (u8aa.length % 4) | 0;\n        const length = (u8aa.length - mod) | 0;\n        for (let i = 0; i < length; i += 4) {\n            if (dvA.getUint32(i) !== dvB.getUint32(i)) {\n                return false;\n            }\n        }\n        for (let i = length, count = u8aa.length; i < count; i++) {\n            if (u8aa[i] !== u8ab[i]) {\n                return false;\n            }\n        }\n        return true;\n    }\n    return false;\n}\n","import { u8aConcat } from '@polkadot/util';\nimport { base58Encode } from '../base58/index.js';\nimport { decodeAddress } from './decode.js';\nimport { defaults } from './defaults.js';\nimport { sshash } from './sshash.js';\nexport function encodeAddress(key, ss58Format = defaults.prefix) {\n    // decode it, this means we can re-encode an address\n    const u8a = decodeAddress(key);\n    if ((ss58Format < 0) || (ss58Format > 16383) || [46, 47].includes(ss58Format)) {\n        throw new Error('Out of range ss58Format specified');\n    }\n    else if (!defaults.allowedDecodedLengths.includes(u8a.length)) {\n        throw new Error(`Expected a valid key to convert, with length ${defaults.allowedDecodedLengths.join(', ')}`);\n    }\n    const input = u8aConcat(ss58Format < 64\n        ? [ss58Format]\n        : [\n            ((ss58Format & 252) >> 2) | 64,\n            (ss58Format >> 8) | ((ss58Format & 3) << 6)\n        ], u8a);\n    return base58Encode(u8aConcat(input, sshash(input).subarray(0, [32, 33].includes(u8a.length) ? 2 : 1)));\n}\n","import { isPromise, objectSpread, u8aEq } from '@polkadot/util';\nimport { decodeAddress, encodeAddress } from '@polkadot/util-crypto';\nimport { documentReadyPromise } from './util.js';\nexport { packageInfo } from './packageInfo.js';\nexport { unwrapBytes, wrapBytes } from './wrapBytes.js';\nconst win = window;\nwin.injectedWeb3 = win.injectedWeb3 || {};\nlet isWeb3Injected = web3IsInjected();\nlet web3EnablePromise = null;\nexport { isWeb3Injected, web3EnablePromise };\n/** @internal true when anything has been injected and is available */\nfunction web3IsInjected() {\n    return Object\n        .values(win.injectedWeb3)\n        .filter(({ connect, enable }) => !!(connect || enable))\n        .length !== 0;\n}\n/** @internal throw a consistent error when not extensions have not been enabled */\nfunction throwError(method) {\n    throw new Error(`${method}: web3Enable(originName) needs to be called before ${method}`);\n}\n/** @internal map from Array<InjectedAccount> to Array<InjectedAccountWithMeta> */\nfunction mapAccounts(source, list, ss58Format) {\n    return list.map(({ address, genesisHash, name, type }) => ({\n        address: address.length === 42\n            ? address\n            : encodeAddress(decodeAddress(address), ss58Format),\n        meta: { genesisHash, name, source },\n        type\n    }));\n}\n/** @internal filter accounts based on genesisHash and type of account */\nfunction filterAccounts(list, genesisHash, type) {\n    return list.filter((a) => (!a.type || !type || type.includes(a.type)) &&\n        (!a.genesisHash || !genesisHash || a.genesisHash === genesisHash));\n}\n/** @internal retrieves all the extensions available on the window */\nfunction getWindowExtensions(originName) {\n    return Promise\n        .all(Object\n        .entries(win.injectedWeb3)\n        .map(([nameOrHash, { connect, enable, version }]) => Promise\n        .resolve()\n        .then(() => connect\n        // new style, returning all info\n        ? connect(originName)\n        : enable\n            // previous interface, leakages on name/version\n            ? enable(originName).then((e) => objectSpread({ name: nameOrHash, version: version || 'unknown' }, e))\n            : Promise.reject(new Error('No connect(..) or enable(...) hook found')))\n        .catch(({ message }) => {\n        console.error(`Error initializing ${nameOrHash}: ${message}`);\n    })))\n        .then((exts) => exts.filter((e) => !!e));\n}\n/** @internal Ensure the enable promise is resolved and filter by extensions */\nasync function filterEnable(caller, extensions) {\n    if (!web3EnablePromise) {\n        return throwError(caller);\n    }\n    const sources = await web3EnablePromise;\n    return sources.filter(({ name }) => !extensions ||\n        extensions.includes(name));\n}\n/**\n * @summary Enables all the providers found on the injected window interface\n * @description\n * Enables all injected extensions that has been found on the page. This\n * should be called before making use of any other web3* functions.\n */\nexport function web3Enable(originName, compatInits = []) {\n    if (!originName) {\n        throw new Error('You must pass a name for your app to the web3Enable function');\n    }\n    const initCompat = compatInits.length\n        ? Promise.all(compatInits.map((c) => c().catch(() => false)))\n        : Promise.resolve([true]);\n    web3EnablePromise = documentReadyPromise(() => initCompat.then(() => getWindowExtensions(originName)\n        .then((values) => values.map((e) => {\n        // if we don't have an accounts subscriber, add a single-shot version\n        if (!e.accounts.subscribe) {\n            e.accounts.subscribe = (cb) => {\n                e.accounts\n                    .get()\n                    .then(cb)\n                    .catch(console.error);\n                return () => {\n                    // no ubsubscribe needed, this is a single-shot\n                };\n            };\n        }\n        return e;\n    }))\n        .catch(() => [])\n        .then((values) => {\n        const names = values.map(({ name, version }) => `${name}/${version}`);\n        isWeb3Injected = web3IsInjected();\n        console.info(`web3Enable: Enabled ${values.length} extension${values.length !== 1 ? 's' : ''}: ${names.join(', ')}`);\n        return values;\n    })));\n    return web3EnablePromise;\n}\n/**\n * @summary Retrieves all the accounts across all providers\n * @description\n * This returns the full list of account available (accross all extensions) to\n * the page. Filtereing options are available of a per-extension, per type and\n * per-genesisHash basis. Optionally the accounts can be encoded with the provided\n * ss58Format\n */\nexport async function web3Accounts({ accountType, extensions, genesisHash, ss58Format } = {}) {\n    const accounts = [];\n    const sources = await filterEnable('web3Accounts', extensions);\n    const retrieved = await Promise.all(sources.map(async ({ accounts, name: source }) => {\n        try {\n            const list = await accounts.get();\n            return mapAccounts(source, filterAccounts(list, genesisHash, accountType), ss58Format);\n        }\n        catch {\n            // cannot handle this one\n            return [];\n        }\n    }));\n    retrieved.forEach((result) => {\n        accounts.push(...result);\n    });\n    console.info(`web3Accounts: Found ${accounts.length} address${accounts.length !== 1 ? 'es' : ''}`);\n    return accounts;\n}\n/**\n * @summary Subscribes to all the accounts across all providers\n * @description\n * This is the subscription version of the web3Accounts interface with\n * updates as to when new accounts do become available. The list of filtering\n * options are the same as for the web3Accounts interface.\n */\nexport async function web3AccountsSubscribe(cb, { accountType, extensions, genesisHash, ss58Format } = {}) {\n    const sources = await filterEnable('web3AccountsSubscribe', extensions);\n    const accounts = {};\n    const triggerUpdate = () => cb(Object\n        .entries(accounts)\n        .reduce((result, [source, list]) => {\n        result.push(...mapAccounts(source, filterAccounts(list, genesisHash, accountType), ss58Format));\n        return result;\n    }, []));\n    const unsubs = sources.map(({ accounts: { subscribe }, name: source }) => subscribe((result) => {\n        accounts[source] = result;\n        try {\n            const result = triggerUpdate();\n            if (result && isPromise(result)) {\n                result.catch(console.error);\n            }\n        }\n        catch (error) {\n            console.error(error);\n        }\n    }));\n    return () => {\n        unsubs.forEach((unsub) => {\n            unsub();\n        });\n    };\n}\n/**\n * @summary Finds a specific provider based on the name\n * @description\n * This retrieves a specific source (extension) based on the name. In most\n * cases it should not be needed to call it directly (e.g. it is used internally\n * by calls such as web3FromAddress) but would allow operation on a specific\n * known extension.\n */\nexport async function web3FromSource(source) {\n    if (!web3EnablePromise) {\n        return throwError('web3FromSource');\n    }\n    const sources = await web3EnablePromise;\n    const found = source && sources.find(({ name }) => name === source);\n    if (!found) {\n        throw new Error(`web3FromSource: Unable to find an injected ${source}`);\n    }\n    return found;\n}\n/**\n * @summary Find a specific provider that provides a specific address\n * @description\n * Based on an address, return the provider that has makes this address\n * available to the page.\n */\nexport async function web3FromAddress(address) {\n    if (!web3EnablePromise) {\n        return throwError('web3FromAddress');\n    }\n    const accounts = await web3Accounts();\n    let found;\n    if (address) {\n        const accountU8a = decodeAddress(address);\n        found = accounts.find((account) => u8aEq(decodeAddress(account.address), accountU8a));\n    }\n    if (!found) {\n        throw new Error(`web3FromAddress: Unable to find injected ${address}`);\n    }\n    return web3FromSource(found.meta.source);\n}\n/**\n * @summary List all providers exposed by one source\n * @description\n * For extensions that supply RPC providers, this call would return the list\n * of RPC providers that any extension may supply.\n */\nexport async function web3ListRpcProviders(source) {\n    const { provider } = await web3FromSource(source);\n    if (!provider) {\n        console.warn(`Extension ${source} does not expose any provider`);\n        return null;\n    }\n    return provider.listProviders();\n}\n/**\n * @summary Start an RPC provider provider by a specific source\n * @description\n * For extensions that supply RPC providers, this call would return an\n * enabled provider (initialized with the specific key) from the\n * specified extension source.\n */\nexport async function web3UseRpcProvider(source, key) {\n    const { provider } = await web3FromSource(source);\n    if (!provider) {\n        throw new Error(`Extension ${source} does not expose any provider`);\n    }\n    const meta = await provider.startProvider(key);\n    return { meta, provider };\n}\n","export function documentReadyPromise(creator) {\n    return new Promise((resolve) => {\n        if (document.readyState === 'complete') {\n            resolve(creator());\n        }\n        else {\n            window.addEventListener('load', () => resolve(creator()));\n        }\n    });\n}\n","/** @internal */\nfunction zeroPad(value) {\n    return value.toString().padStart(2, '0');\n}\n/**\n * @name formatDate\n * @description Formats a date in CCYY-MM-DD HH:MM:SS format\n */\nexport function formatDate(date) {\n    const year = date.getFullYear().toString();\n    const month = zeroPad((date.getMonth() + 1));\n    const day = zeroPad(date.getDate());\n    const hour = zeroPad(date.getHours());\n    const minute = zeroPad(date.getMinutes());\n    const second = zeroPad(date.getSeconds());\n    return `${year}-${month}-${day} ${hour}:${minute}:${second}`;\n}\n","import { BN } from '../bn/bn.js';\n/**\n * @name isBn\n * @summary Tests for a `BN` object instance.\n * @description\n * Checks to see if the input object is an instance of `BN` (bn.js).\n * @example\n * <BR>\n *\n * ```javascript\n * import BN from 'bn.js';\n * import { isBn } from '@polkadot/util';\n *\n * console.log('isBn', isBn(new BN(1))); // => true\n * ```\n */\nexport function isBn(value) {\n    return BN.isBN(value);\n}\n","/**\n * @name isObject\n * @summary Tests for an `object`.\n * @description\n * Checks to see if the input value is a JavaScript object.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isObject } from '@polkadot/util';\n *\n * isObject({}); // => true\n * isObject('something'); // => false\n * ```\n */\nexport function isObject(value) {\n    return !!value && typeof value === 'object';\n}\n","/**\n * A sharable identity function. Returns the input as-is with no transformation applied.\n */\nexport function identity(value) {\n    return value;\n}\n/**\n * A sharable noop function. As the name suggests, does nothing\n */\nexport function noop() {\n    // noop\n}\n","import { xglobal } from '@polkadot/x-global';\nimport { formatDate } from './format/formatDate.js';\nimport { isBn } from './is/bn.js';\nimport { isBuffer } from './is/buffer.js';\nimport { isFunction } from './is/function.js';\nimport { isObject } from './is/object.js';\nimport { isU8a } from './is/u8a.js';\nimport { u8aToHex } from './u8a/toHex.js';\nimport { u8aToU8a } from './u8a/toU8a.js';\nimport { hasProcess } from './has.js';\nimport { noop } from './noop.js';\nconst logTo = {\n    debug: 'log',\n    error: 'error',\n    log: 'log',\n    warn: 'warn'\n};\nfunction formatOther(value) {\n    if (value && isObject(value) && value.constructor === Object) {\n        const result = {};\n        for (const [k, v] of Object.entries(value)) {\n            result[k] = loggerFormat(v);\n        }\n        return result;\n    }\n    return value;\n}\nexport function loggerFormat(value) {\n    if (Array.isArray(value)) {\n        return value.map(loggerFormat);\n    }\n    else if (isBn(value)) {\n        return value.toString();\n    }\n    else if (isU8a(value) || isBuffer(value)) {\n        return u8aToHex(u8aToU8a(value));\n    }\n    return formatOther(value);\n}\nfunction formatWithLength(maxLength) {\n    return (v) => {\n        if (maxLength <= 0) {\n            return v;\n        }\n        const r = `${v}`;\n        return r.length < maxLength\n            ? v\n            : `${r.substring(0, maxLength)} ...`;\n    };\n}\nfunction apply(log, type, values, maxSize = -1) {\n    if (values.length === 1 && isFunction(values[0])) {\n        const fnResult = values[0]();\n        return apply(log, type, Array.isArray(fnResult) ? fnResult : [fnResult], maxSize);\n    }\n    console[logTo[log]](formatDate(new Date()), type, ...values\n        .map(loggerFormat)\n        .map(formatWithLength(maxSize)));\n}\nfunction isDebugOn(e, type) {\n    return !!e && (e === '*' ||\n        type === e ||\n        (e.endsWith('*') &&\n            type.startsWith(e.slice(0, -1))));\n}\nfunction isDebugOff(e, type) {\n    return !!e && (e.startsWith('-') &&\n        (type === e.slice(1) ||\n            (e.endsWith('*') &&\n                type.startsWith(e.slice(1, -1)))));\n}\nfunction getDebugFlag(env, type) {\n    let flag = false;\n    for (const e of env) {\n        if (isDebugOn(e, type)) {\n            flag = true;\n        }\n        else if (isDebugOff(e, type)) {\n            flag = false;\n        }\n    }\n    return flag;\n}\nfunction parseEnv(type) {\n    const env = (hasProcess ? xglobal.process : {}).env || {};\n    const maxSize = parseInt(env['DEBUG_MAX'] || '-1', 10);\n    return [\n        getDebugFlag((env['DEBUG'] || '').toLowerCase().split(','), type),\n        isNaN(maxSize)\n            ? -1\n            : maxSize\n    ];\n}\n/**\n * @name Logger\n * @summary Creates a consistent log interface for messages\n * @description\n * Returns a `Logger` that has `.log`, `.error`, `.warn` and `.debug` (controlled with environment `DEBUG=typeA,typeB`) methods. Logging is done with a consistent prefix (type of logger, date) followed by the actual message using the underlying console.\n * @example\n * <BR>\n *\n * ```javascript\n * import { logger } from '@polkadot/util';\n *\n * const l = logger('test');\n * ```\n */\nexport function logger(origin) {\n    const type = `${origin.toUpperCase()}:`.padStart(16);\n    const [isDebug, maxSize] = parseEnv(origin.toLowerCase());\n    return {\n        debug: isDebug\n            ? (...values) => apply('debug', type, values, maxSize)\n            : noop,\n        error: (...values) => apply('error', type, values),\n        log: (...values) => apply('log', type, values),\n        noop,\n        warn: (...values) => apply('warn', type, values)\n    };\n}\n","/**\n * @name isUndefined\n * @summary Tests for a `undefined` values.\n * @description\n * Checks to see if the input value is `undefined`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isUndefined } from '@polkadot/util';\n *\n * console.log('isUndefined', isUndefined(void(0))); // => true\n * ```\n */\nexport function isUndefined(value) {\n    return value === undefined;\n}\n","import { isFunction } from './function.js';\nimport { isObject } from './object.js';\nexport function isOn(...fns) {\n    return (value) => (isObject(value) || isFunction(value)) &&\n        fns.every((f) => isFunction(value[f]));\n}\nexport function isOnFunction(...fns) {\n    return (value) => isFunction(value) &&\n        fns.every((f) => isFunction(value[f]));\n}\nexport function isOnObject(...fns) {\n    return (value) => isObject(value) &&\n        fns.every((f) => isFunction(value[f]));\n}\n","import { isOnFunction } from './helpers.js';\n/**\n * @name isClass\n * Tests if the supplied argument is a Class\n */\nexport const isClass = /*#__PURE__*/ isOnFunction('isPrototypeOf', 'hasOwnProperty');\n","/**\n * @name isNull\n * @summary Tests for a `null` values.\n * @description\n * Checks to see if the input value is `null`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isNull } from '@polkadot/util';\n *\n * console.log('isNull', isNull(null)); // => true\n * ```\n */\nexport function isNull(value) {\n    return value === null;\n}\n","import { xglobal } from '@polkadot/x-global';\nexport { packageInfo } from './packageInfo.js';\nexport const WebSocket = xglobal.WebSocket;\n","/**\n * @name isString\n * @summary Tests for a string.\n * @description\n * Checks to see if the input value is a JavaScript string.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isString } from '@polkadot/util';\n *\n * console.log('isString', isString('test')); // => true\n * ```\n */\nexport function isString(value) {\n    return typeof value === 'string' || value instanceof String;\n}\n","/**\n * @name isBigInt\n * @summary Tests for a `BigInt` object instance.\n * @description\n * Checks to see if the input object is an instance of `BigInt`\n * @example\n * <BR>\n *\n * ```javascript\n * import { isBigInt } from '@polkadot/util';\n *\n * console.log('isBigInt', isBigInt(123_456n)); // => true\n * ```\n */\nexport function isBigInt(value) {\n    return typeof value === 'bigint';\n}\n","import { isBigInt } from './is/bigInt.js';\n/** @internal */\nfunction replacer(_, v) {\n    return isBigInt(v)\n        ? v.toString()\n        : v;\n}\n/**\n * @name stringify\n * @summary Performs a JSON.stringify, with BigInt handling\n * @description A wrapper for JSON.stringify that handles BigInt values transparently, converting them to string. No differences from the native JSON.stringify function otherwise.\n */\nexport function stringify(value, space) {\n    return JSON.stringify(value, replacer, space);\n}\n","/**\n * @name isNumber\n * @summary Tests for a JavaScript number.\n * @description\n * Checks to see if the input value is a valid number.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isNumber } from '@polkadot/util';\n *\n * console.log('isNumber', isNumber(1234)); // => true\n * ```\n */\nexport function isNumber(value) {\n    return typeof value === 'number';\n}\n","import { isFunction } from '@polkadot/util';\nconst UNKNOWN = -99999;\nfunction extend(that, name, value) {\n    Object.defineProperty(that, name, {\n        configurable: true,\n        enumerable: false,\n        value\n    });\n}\n/**\n * @name RpcError\n * @summary Extension to the basic JS Error.\n * @description\n * The built-in JavaScript Error class is extended by adding a code to allow for Error categorization. In addition to the normal `stack`, `message`, the numeric `code` and `data` (any types) parameters are available on the object.\n * @example\n * <BR>\n *\n * ```javascript\n * const { RpcError } from '@polkadot/util');\n *\n * throw new RpcError('some message', RpcError.CODES.METHOD_NOT_FOUND); // => error.code = -32601\n * ```\n */\nclass RpcError extends Error {\n    constructor(message = '', code = UNKNOWN, data) {\n        super();\n        extend(this, 'message', String(message));\n        extend(this, 'name', this.constructor.name);\n        extend(this, 'data', data);\n        extend(this, 'code', code);\n        if (isFunction(Error.captureStackTrace)) {\n            Error.captureStackTrace(this, this.constructor);\n        }\n        else {\n            const { stack } = new Error(message);\n            stack && extend(this, 'stack', stack);\n        }\n    }\n}\nRpcError.CODES = {\n    ASSERT: -90009,\n    INVALID_JSONRPC: -99998,\n    METHOD_NOT_FOUND: -32601,\n    UNKNOWN\n};\nexport default RpcError;\n","import { isNumber, isString, isUndefined, stringify } from '@polkadot/util';\nimport RpcError from './error.js';\nfunction formatErrorData(data) {\n    if (isUndefined(data)) {\n        return '';\n    }\n    const formatted = `: ${isString(data)\n        ? data.replace(/Error\\(\"/g, '').replace(/\\(\"/g, '(').replace(/\"\\)/g, ')').replace(/\\(/g, ', ').replace(/\\)/g, '')\n        : stringify(data)}`;\n    // We need some sort of cut-off here since these can be very large and\n    // very nested, pick a number and trim the result display to it\n    return formatted.length <= 256\n        ? formatted\n        : `${formatted.substring(0, 255)}…`;\n}\nfunction checkError(error) {\n    if (error) {\n        const { code, data, message } = error;\n        throw new RpcError(`${code}: ${message}${formatErrorData(data)}`, code, data);\n    }\n}\n/** @internal */\nexport class RpcCoder {\n    constructor() {\n        this.__internal__id = 0;\n    }\n    decodeResponse(response) {\n        if (!response || response.jsonrpc !== '2.0') {\n            throw new Error('Invalid jsonrpc field in decoded object');\n        }\n        const isSubscription = !isUndefined(response.params) && !isUndefined(response.method);\n        if (!isNumber(response.id) &&\n            (!isSubscription || (!isNumber(response.params.subscription) &&\n                !isString(response.params.subscription)))) {\n            throw new Error('Invalid id field in decoded object');\n        }\n        checkError(response.error);\n        if (response.result === undefined && !isSubscription) {\n            throw new Error('No result found in jsonrpc response');\n        }\n        if (isSubscription) {\n            checkError(response.params.error);\n            return response.params.result;\n        }\n        return response.result;\n    }\n    encodeJson(method, params) {\n        const [id, data] = this.encodeObject(method, params);\n        return [id, stringify(data)];\n    }\n    encodeObject(method, params) {\n        const id = ++this.__internal__id;\n        return [id, {\n                id,\n                jsonrpc: '2.0',\n                method,\n                params\n            }];\n    }\n}\n","const HTTP_URL = 'http://127.0.0.1:9933';\nconst WS_URL = 'ws://127.0.0.1:9944';\nexport default {\n    HTTP_URL,\n    WS_URL\n};\n","const DEFAULT_CAPACITY = 128;\nclass LRUNode {\n    constructor(key) {\n        this.key = key;\n        this.next = this.prev = this;\n    }\n}\nexport class LRUCache {\n    constructor(capacity = DEFAULT_CAPACITY) {\n        this.__internal__data = new Map();\n        this.__internal__refs = new Map();\n        this.__internal__length = 0;\n        this.capacity = capacity;\n        this.__internal__head = this.__internal__tail = new LRUNode('<empty>');\n    }\n    get length() {\n        return this.__internal__length;\n    }\n    get lengthData() {\n        return this.__internal__data.size;\n    }\n    get lengthRefs() {\n        return this.__internal__refs.size;\n    }\n    entries() {\n        const keys = this.keys();\n        const count = keys.length;\n        const entries = new Array(count);\n        for (let i = 0; i < count; i++) {\n            const key = keys[i];\n            entries[i] = [key, this.__internal__data.get(key)];\n        }\n        return entries;\n    }\n    keys() {\n        const keys = [];\n        if (this.__internal__length) {\n            let curr = this.__internal__head;\n            while (curr !== this.__internal__tail) {\n                keys.push(curr.key);\n                curr = curr.next;\n            }\n            keys.push(curr.key);\n        }\n        return keys;\n    }\n    get(key) {\n        const data = this.__internal__data.get(key);\n        if (data) {\n            this.__internal__toHead(key);\n            return data;\n        }\n        return null;\n    }\n    set(key, value) {\n        if (this.__internal__data.has(key)) {\n            this.__internal__toHead(key);\n        }\n        else {\n            const node = new LRUNode(key);\n            this.__internal__refs.set(node.key, node);\n            if (this.length === 0) {\n                this.__internal__head = this.__internal__tail = node;\n            }\n            else {\n                this.__internal__head.prev = node;\n                node.next = this.__internal__head;\n                this.__internal__head = node;\n            }\n            if (this.__internal__length === this.capacity) {\n                this.__internal__data.delete(this.__internal__tail.key);\n                this.__internal__refs.delete(this.__internal__tail.key);\n                this.__internal__tail = this.__internal__tail.prev;\n                this.__internal__tail.next = this.__internal__head;\n            }\n            else {\n                this.__internal__length += 1;\n            }\n        }\n        this.__internal__data.set(key, value);\n    }\n    __internal__toHead(key) {\n        const ref = this.__internal__refs.get(key);\n        if (ref && ref !== this.__internal__head) {\n            ref.prev.next = ref.next;\n            ref.next.prev = ref.prev;\n            ref.next = this.__internal__head;\n            this.__internal__head.prev = ref;\n            this.__internal__head = ref;\n        }\n    }\n}\n","const known = {\n    1000: 'Normal Closure',\n    1001: 'Going Away',\n    1002: 'Protocol Error',\n    1003: 'Unsupported Data',\n    1004: '(For future)',\n    1005: 'No Status Received',\n    1006: 'Abnormal Closure',\n    1007: 'Invalid frame payload data',\n    1008: 'Policy Violation',\n    1009: 'Message too big',\n    1010: 'Missing Extension',\n    1011: 'Internal Error',\n    1012: 'Service Restart',\n    1013: 'Try Again Later',\n    1014: 'Bad Gateway',\n    1015: 'TLS Handshake'\n};\nexport function getWSErrorString(code) {\n    if (code >= 0 && code <= 999) {\n        return '(Unused)';\n    }\n    else if (code >= 1016) {\n        if (code <= 1999) {\n            return '(For WebSocket standard)';\n        }\n        else if (code <= 2999) {\n            return '(For WebSocket extensions)';\n        }\n        else if (code <= 3999) {\n            return '(For libraries and frameworks)';\n        }\n        else if (code <= 4999) {\n            return '(For applications)';\n        }\n    }\n    return known[code] || '(Unknown)';\n}\n","import { EventEmitter } from 'eventemitter3';\nimport { isChildClass, isNull, isUndefined, logger, noop, objectSpread } from '@polkadot/util';\nimport { xglobal } from '@polkadot/x-global';\nimport { WebSocket } from '@polkadot/x-ws';\nimport { RpcCoder } from '../coder/index.js';\nimport defaults from '../defaults.js';\nimport { LRUCache } from '../lru.js';\nimport { getWSErrorString } from './errors.js';\nconst ALIASES = {\n    chain_finalisedHead: 'chain_finalizedHead',\n    chain_subscribeFinalisedHeads: 'chain_subscribeFinalizedHeads',\n    chain_unsubscribeFinalisedHeads: 'chain_unsubscribeFinalizedHeads'\n};\nconst RETRY_DELAY = 2500;\nconst DEFAULT_TIMEOUT_MS = 60 * 1000;\nconst TIMEOUT_INTERVAL = 5000;\nconst l = logger('api-ws');\n/** @internal Clears a Record<*> of all keys, optionally with all callback on clear */\nfunction eraseRecord(record, cb) {\n    Object.keys(record).forEach((key) => {\n        if (cb) {\n            cb(record[key]);\n        }\n        delete record[key];\n    });\n}\n/** @internal Creates a default/empty stats object */\nfunction defaultEndpointStats() {\n    return { bytesRecv: 0, bytesSent: 0, cached: 0, errors: 0, requests: 0, subscriptions: 0, timeout: 0 };\n}\n/**\n * # @polkadot/rpc-provider/ws\n *\n * @name WsProvider\n *\n * @description The WebSocket Provider allows sending requests using WebSocket to a WebSocket RPC server TCP port. Unlike the [[HttpProvider]], it does support subscriptions and allows listening to events such as new blocks or balance changes.\n *\n * @example\n * <BR>\n *\n * ```javascript\n * import Api from '@polkadot/api/promise';\n * import { WsProvider } from '@polkadot/rpc-provider/ws';\n *\n * const provider = new WsProvider('ws://127.0.0.1:9944');\n * const api = new Api(provider);\n * ```\n *\n * @see [[HttpProvider]]\n */\nexport class WsProvider {\n    /**\n     * @param {string | string[]}  endpoint    The endpoint url. Usually `ws://ip:9944` or `wss://ip:9944`, may provide an array of endpoint strings.\n     * @param {number | false} autoConnectMs Whether to connect automatically or not (default). Provided value is used as a delay between retries.\n     * @param {Record<string, string>} headers The headers provided to the underlying WebSocket\n     * @param {number} [timeout] Custom timeout value used per request . Defaults to `DEFAULT_TIMEOUT_MS`\n     */\n    constructor(endpoint = defaults.WS_URL, autoConnectMs = RETRY_DELAY, headers = {}, timeout) {\n        this.__internal__callCache = new LRUCache();\n        this.__internal__handlers = {};\n        this.__internal__waitingForId = {};\n        this.__internal__isConnected = false;\n        this.__internal__subscriptions = {};\n        this.__internal__timeoutId = null;\n        this.__internal__emit = (type, ...args) => {\n            this.__internal__eventemitter.emit(type, ...args);\n        };\n        this.__internal__onSocketClose = (event) => {\n            const error = new Error(`disconnected from ${this.endpoint}: ${event.code}:: ${event.reason || getWSErrorString(event.code)}`);\n            if (this.__internal__autoConnectMs > 0) {\n                l.error(error.message);\n            }\n            this.__internal__isConnected = false;\n            if (this.__internal__websocket) {\n                this.__internal__websocket.onclose = null;\n                this.__internal__websocket.onerror = null;\n                this.__internal__websocket.onmessage = null;\n                this.__internal__websocket.onopen = null;\n                this.__internal__websocket = null;\n            }\n            if (this.__internal__timeoutId) {\n                clearInterval(this.__internal__timeoutId);\n                this.__internal__timeoutId = null;\n            }\n            // reject all hanging requests\n            eraseRecord(this.__internal__handlers, (h) => {\n                try {\n                    h.callback(error, undefined);\n                }\n                catch (err) {\n                    // does not throw\n                    l.error(err);\n                }\n            });\n            eraseRecord(this.__internal__waitingForId);\n            // Reset stats for active endpoint\n            this.__internal__endpointStats = defaultEndpointStats();\n            this.__internal__emit('disconnected');\n            if (this.__internal__autoConnectMs > 0) {\n                setTimeout(() => {\n                    this.connectWithRetry().catch(noop);\n                }, this.__internal__autoConnectMs);\n            }\n        };\n        this.__internal__onSocketError = (error) => {\n            l.debug(() => ['socket error', error]);\n            this.__internal__emit('error', error);\n        };\n        this.__internal__onSocketMessage = (message) => {\n            l.debug(() => ['received', message.data]);\n            const bytesRecv = message.data.length;\n            this.__internal__endpointStats.bytesRecv += bytesRecv;\n            this.__internal__stats.total.bytesRecv += bytesRecv;\n            const response = JSON.parse(message.data);\n            return isUndefined(response.method)\n                ? this.__internal__onSocketMessageResult(response)\n                : this.__internal__onSocketMessageSubscribe(response);\n        };\n        this.__internal__onSocketMessageResult = (response) => {\n            const handler = this.__internal__handlers[response.id];\n            if (!handler) {\n                l.debug(() => `Unable to find handler for id=${response.id}`);\n                return;\n            }\n            try {\n                const { method, params, subscription } = handler;\n                const result = this.__internal__coder.decodeResponse(response);\n                // first send the result - in case of subs, we may have an update\n                // immediately if we have some queued results already\n                handler.callback(null, result);\n                if (subscription) {\n                    const subId = `${subscription.type}::${result}`;\n                    this.__internal__subscriptions[subId] = objectSpread({}, subscription, {\n                        method,\n                        params\n                    });\n                    // if we have a result waiting for this subscription already\n                    if (this.__internal__waitingForId[subId]) {\n                        this.__internal__onSocketMessageSubscribe(this.__internal__waitingForId[subId]);\n                    }\n                }\n            }\n            catch (error) {\n                this.__internal__endpointStats.errors++;\n                this.__internal__stats.total.errors++;\n                handler.callback(error, undefined);\n            }\n            delete this.__internal__handlers[response.id];\n        };\n        this.__internal__onSocketMessageSubscribe = (response) => {\n            if (!response.method) {\n                throw new Error('No method found in JSONRPC response');\n            }\n            const method = ALIASES[response.method] || response.method;\n            const subId = `${method}::${response.params.subscription}`;\n            const handler = this.__internal__subscriptions[subId];\n            if (!handler) {\n                // store the JSON, we could have out-of-order subid coming in\n                this.__internal__waitingForId[subId] = response;\n                l.debug(() => `Unable to find handler for subscription=${subId}`);\n                return;\n            }\n            // housekeeping\n            delete this.__internal__waitingForId[subId];\n            try {\n                const result = this.__internal__coder.decodeResponse(response);\n                handler.callback(null, result);\n            }\n            catch (error) {\n                this.__internal__endpointStats.errors++;\n                this.__internal__stats.total.errors++;\n                handler.callback(error, undefined);\n            }\n        };\n        this.__internal__onSocketOpen = () => {\n            if (this.__internal__websocket === null) {\n                throw new Error('WebSocket cannot be null in onOpen');\n            }\n            l.debug(() => ['connected to', this.endpoint]);\n            this.__internal__isConnected = true;\n            this.__internal__resubscribe();\n            this.__internal__emit('connected');\n            return true;\n        };\n        this.__internal__resubscribe = () => {\n            const subscriptions = this.__internal__subscriptions;\n            this.__internal__subscriptions = {};\n            Promise.all(Object.keys(subscriptions).map(async (id) => {\n                const { callback, method, params, type } = subscriptions[id];\n                // only re-create subscriptions which are not in author (only area where\n                // transactions are created, i.e. submissions such as 'author_submitAndWatchExtrinsic'\n                // are not included (and will not be re-broadcast)\n                if (type.startsWith('author_')) {\n                    return;\n                }\n                try {\n                    await this.subscribe(type, method, params, callback);\n                }\n                catch (error) {\n                    l.error(error);\n                }\n            })).catch(l.error);\n        };\n        this.__internal__timeoutHandlers = () => {\n            const now = Date.now();\n            const ids = Object.keys(this.__internal__handlers);\n            for (let i = 0, count = ids.length; i < count; i++) {\n                const handler = this.__internal__handlers[ids[i]];\n                if ((now - handler.start) > this.__internal__timeout) {\n                    try {\n                        handler.callback(new Error(`No response received from RPC endpoint in ${this.__internal__timeout / 1000}s`), undefined);\n                    }\n                    catch {\n                        // ignore\n                    }\n                    this.__internal__endpointStats.timeout++;\n                    this.__internal__stats.total.timeout++;\n                    delete this.__internal__handlers[ids[i]];\n                }\n            }\n        };\n        const endpoints = Array.isArray(endpoint)\n            ? endpoint\n            : [endpoint];\n        if (endpoints.length === 0) {\n            throw new Error('WsProvider requires at least one Endpoint');\n        }\n        endpoints.forEach((endpoint) => {\n            if (!/^(wss|ws):\\/\\//.test(endpoint)) {\n                throw new Error(`Endpoint should start with 'ws://', received '${endpoint}'`);\n            }\n        });\n        this.__internal__eventemitter = new EventEmitter();\n        this.__internal__autoConnectMs = autoConnectMs || 0;\n        this.__internal__coder = new RpcCoder();\n        this.__internal__endpointIndex = -1;\n        this.__internal__endpoints = endpoints;\n        this.__internal__headers = headers;\n        this.__internal__websocket = null;\n        this.__internal__stats = {\n            active: { requests: 0, subscriptions: 0 },\n            total: defaultEndpointStats()\n        };\n        this.__internal__endpointStats = defaultEndpointStats();\n        this.__internal__timeout = timeout || DEFAULT_TIMEOUT_MS;\n        if (autoConnectMs && autoConnectMs > 0) {\n            this.connectWithRetry().catch(noop);\n        }\n        this.__internal__isReadyPromise = new Promise((resolve) => {\n            this.__internal__eventemitter.once('connected', () => {\n                resolve(this);\n            });\n        });\n    }\n    /**\n     * @summary `true` when this provider supports subscriptions\n     */\n    get hasSubscriptions() {\n        return !!true;\n    }\n    /**\n     * @summary `true` when this provider supports clone()\n     */\n    get isClonable() {\n        return !!true;\n    }\n    /**\n     * @summary Whether the node is connected or not.\n     * @return {boolean} true if connected\n     */\n    get isConnected() {\n        return this.__internal__isConnected;\n    }\n    /**\n     * @description Promise that resolves the first time we are connected and loaded\n     */\n    get isReady() {\n        return this.__internal__isReadyPromise;\n    }\n    get endpoint() {\n        return this.__internal__endpoints[this.__internal__endpointIndex];\n    }\n    /**\n     * @description Returns a clone of the object\n     */\n    clone() {\n        return new WsProvider(this.__internal__endpoints);\n    }\n    selectEndpointIndex(endpoints) {\n        return (this.__internal__endpointIndex + 1) % endpoints.length;\n    }\n    /**\n     * @summary Manually connect\n     * @description The [[WsProvider]] connects automatically by default, however if you decided otherwise, you may\n     * connect manually using this method.\n     */\n    // eslint-disable-next-line @typescript-eslint/require-await\n    async connect() {\n        if (this.__internal__websocket) {\n            throw new Error('WebSocket is already connected');\n        }\n        try {\n            this.__internal__endpointIndex = this.selectEndpointIndex(this.__internal__endpoints);\n            // the as here is Deno-specific - not available on the globalThis\n            this.__internal__websocket = typeof xglobal.WebSocket !== 'undefined' && isChildClass(xglobal.WebSocket, WebSocket)\n                ? new WebSocket(this.endpoint)\n                // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                // @ts-ignore - WS may be an instance of ws, which supports options\n                : new WebSocket(this.endpoint, undefined, {\n                    headers: this.__internal__headers\n                });\n            if (this.__internal__websocket) {\n                this.__internal__websocket.onclose = this.__internal__onSocketClose;\n                this.__internal__websocket.onerror = this.__internal__onSocketError;\n                this.__internal__websocket.onmessage = this.__internal__onSocketMessage;\n                this.__internal__websocket.onopen = this.__internal__onSocketOpen;\n            }\n            // timeout any handlers that have not had a response\n            this.__internal__timeoutId = setInterval(() => this.__internal__timeoutHandlers(), TIMEOUT_INTERVAL);\n        }\n        catch (error) {\n            l.error(error);\n            this.__internal__emit('error', error);\n            throw error;\n        }\n    }\n    /**\n     * @description Connect, never throwing an error, but rather forcing a retry\n     */\n    async connectWithRetry() {\n        if (this.__internal__autoConnectMs > 0) {\n            try {\n                await this.connect();\n            }\n            catch {\n                setTimeout(() => {\n                    this.connectWithRetry().catch(noop);\n                }, this.__internal__autoConnectMs);\n            }\n        }\n    }\n    /**\n     * @description Manually disconnect from the connection, clearing auto-connect logic\n     */\n    // eslint-disable-next-line @typescript-eslint/require-await\n    async disconnect() {\n        // switch off autoConnect, we are in manual mode now\n        this.__internal__autoConnectMs = 0;\n        try {\n            if (this.__internal__websocket) {\n                // 1000 - Normal closure; the connection successfully completed\n                this.__internal__websocket.close(1000);\n            }\n        }\n        catch (error) {\n            l.error(error);\n            this.__internal__emit('error', error);\n            throw error;\n        }\n    }\n    /**\n     * @description Returns the connection stats\n     */\n    get stats() {\n        return {\n            active: {\n                requests: Object.keys(this.__internal__handlers).length,\n                subscriptions: Object.keys(this.__internal__subscriptions).length\n            },\n            total: this.__internal__stats.total\n        };\n    }\n    get endpointStats() {\n        return this.__internal__endpointStats;\n    }\n    /**\n     * @summary Listens on events after having subscribed using the [[subscribe]] function.\n     * @param  {ProviderInterfaceEmitted} type Event\n     * @param  {ProviderInterfaceEmitCb}  sub  Callback\n     * @return unsubscribe function\n     */\n    on(type, sub) {\n        this.__internal__eventemitter.on(type, sub);\n        return () => {\n            this.__internal__eventemitter.removeListener(type, sub);\n        };\n    }\n    /**\n     * @summary Send JSON data using WebSockets to configured HTTP Endpoint or queue.\n     * @param method The RPC methods to execute\n     * @param params Encoded parameters as applicable for the method\n     * @param subscription Subscription details (internally used)\n     */\n    send(method, params, isCacheable, subscription) {\n        this.__internal__endpointStats.requests++;\n        this.__internal__stats.total.requests++;\n        const [id, body] = this.__internal__coder.encodeJson(method, params);\n        let resultPromise = isCacheable\n            ? this.__internal__callCache.get(body)\n            : null;\n        if (!resultPromise) {\n            resultPromise = this.__internal__send(id, body, method, params, subscription);\n            if (isCacheable) {\n                this.__internal__callCache.set(body, resultPromise);\n            }\n        }\n        else {\n            this.__internal__endpointStats.cached++;\n            this.__internal__stats.total.cached++;\n        }\n        return resultPromise;\n    }\n    async __internal__send(id, body, method, params, subscription) {\n        return new Promise((resolve, reject) => {\n            try {\n                if (!this.isConnected || this.__internal__websocket === null) {\n                    throw new Error('WebSocket is not connected');\n                }\n                const callback = (error, result) => {\n                    error\n                        ? reject(error)\n                        : resolve(result);\n                };\n                l.debug(() => ['calling', method, body]);\n                this.__internal__handlers[id] = {\n                    callback,\n                    method,\n                    params,\n                    start: Date.now(),\n                    subscription\n                };\n                const bytesSent = body.length;\n                this.__internal__endpointStats.bytesSent += bytesSent;\n                this.__internal__stats.total.bytesSent += bytesSent;\n                this.__internal__websocket.send(body);\n            }\n            catch (error) {\n                this.__internal__endpointStats.errors++;\n                this.__internal__stats.total.errors++;\n                reject(error);\n            }\n        });\n    }\n    /**\n     * @name subscribe\n     * @summary Allows subscribing to a specific event.\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * const provider = new WsProvider('ws://127.0.0.1:9944');\n     * const rpc = new Rpc(provider);\n     *\n     * rpc.state.subscribeStorage([[storage.system.account, <Address>]], (_, values) => {\n     *   console.log(values)\n     * }).then((subscriptionId) => {\n     *   console.log('balance changes subscription id: ', subscriptionId)\n     * })\n     * ```\n     */\n    subscribe(type, method, params, callback) {\n        this.__internal__endpointStats.subscriptions++;\n        this.__internal__stats.total.subscriptions++;\n        // subscriptions are not cached, LRU applies to .at(<blockHash>) only\n        return this.send(method, params, false, { callback, type });\n    }\n    /**\n     * @summary Allows unsubscribing to subscriptions made with [[subscribe]].\n     */\n    async unsubscribe(type, method, id) {\n        const subscription = `${type}::${id}`;\n        // FIXME This now could happen with re-subscriptions. The issue is that with a re-sub\n        // the assigned id now does not match what the API user originally received. It has\n        // a slight complication in solving - since we cannot rely on the send id, but rather\n        // need to find the actual subscription id to map it\n        if (isUndefined(this.__internal__subscriptions[subscription])) {\n            l.debug(() => `Unable to find active subscription=${subscription}`);\n            return false;\n        }\n        delete this.__internal__subscriptions[subscription];\n        try {\n            return this.isConnected && !isNull(this.__internal__websocket)\n                ? this.send(method, [id])\n                : true;\n        }\n        catch {\n            return false;\n        }\n    }\n}\n","import { isClass } from './class.js';\n/**\n * @name isChildClass\n * @summary Tests if the child extends the parent Class\n * @description\n * Checks to see if the child Class extends the parent Class\n * @example\n * <BR>\n *\n * ```javascript\n * import { isChildClass } from '@polkadot/util';\n *\n * console.log('isChildClass', isChildClass(BN, BN); // => true\n * console.log('isChildClass', isChildClass(BN, Uint8Array); // => false\n * ```\n */\nexport function isChildClass(Parent, Child) {\n    // https://stackoverflow.com/questions/30993434/check-if-a-constructor-inherits-another-in-es6/30993664\n    return isClass(Child) && isClass(Parent)\n        // eslint-disable-next-line no-prototype-builtins\n        ? Parent === Child || Parent.isPrototypeOf(Child)\n        : false;\n}\n","export const packageInfo = { name: '@polkadot/api', path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto', type: 'esm', version: '10.10.1' };\n","import { u8aToU8a } from '@polkadot/util';\nexport function findCall(registry, callIndex) {\n    return registry.findMetaCall(u8aToU8a(callIndex));\n}\nexport function findError(registry, errorIndex) {\n    return registry.findMetaError(u8aToU8a(errorIndex));\n}\n","/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass<T>(createImpl: (_super: any) => any): T {\n  const _super = (instance: any) => {\n    Error.call(instance);\n    instance.stack = new Error().stack;\n  };\n\n  const ctorFunc = createImpl(_super);\n  ctorFunc.prototype = Object.create(Error.prototype);\n  ctorFunc.prototype.constructor = ctorFunc;\n  return ctorFunc;\n}\n","import { createErrorClass } from './createErrorClass';\n\nexport interface EmptyError extends Error {}\n\nexport interface EmptyErrorCtor {\n  /**\n   * @deprecated Internal implementation detail. Do not construct error instances.\n   * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n   */\n  new (): EmptyError;\n}\n\n/**\n * An error thrown when an Observable or a sequence was queried but has no\n * elements.\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link single}\n * @see {@link firstValueFrom}\n * @see {@link lastValueFrom}\n *\n * @class EmptyError\n */\nexport const EmptyError: EmptyErrorCtor = createErrorClass((_super) => function EmptyErrorImpl(this: any) {\n  _super(this);\n  this.name = 'EmptyError';\n  this.message = 'no elements in sequence';\n});\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(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)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __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});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(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}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n  return typeof value === 'function';\n}\n","import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n  readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n  /**\n   * @deprecated Internal implementation detail. Do not construct error instances.\n   * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n   */\n  new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n  (_super) =>\n    function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n      _super(this);\n      this.message = errors\n        ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n  ')}`\n        : '';\n      this.name = 'UnsubscriptionError';\n      this.errors = errors;\n    }\n);\n","/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove<T>(arr: T[] | undefined | null, item: T) {\n  if (arr) {\n    const index = arr.indexOf(item);\n    0 <= index && arr.splice(index, 1);\n  }\n}\n","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n  /** @nocollapse */\n  public static EMPTY = (() => {\n    const empty = new Subscription();\n    empty.closed = true;\n    return empty;\n  })();\n\n  /**\n   * A flag to indicate whether this Subscription has already been unsubscribed.\n   */\n  public closed = false;\n\n  private _parentage: Subscription[] | Subscription | null = null;\n\n  /**\n   * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n   * list occurs in the {@link #add} and {@link #remove} methods.\n   */\n  private _finalizers: Exclude<TeardownLogic, void>[] | null = null;\n\n  /**\n   * @param initialTeardown A function executed first as part of the finalization\n   * process that is kicked off when {@link #unsubscribe} is called.\n   */\n  constructor(private initialTeardown?: () => void) {}\n\n  /**\n   * Disposes the resources held by the subscription. May, for instance, cancel\n   * an ongoing Observable execution or cancel any other type of work that\n   * started when the Subscription was created.\n   * @return {void}\n   */\n  unsubscribe(): void {\n    let errors: any[] | undefined;\n\n    if (!this.closed) {\n      this.closed = true;\n\n      // Remove this from it's parents.\n      const { _parentage } = this;\n      if (_parentage) {\n        this._parentage = null;\n        if (Array.isArray(_parentage)) {\n          for (const parent of _parentage) {\n            parent.remove(this);\n          }\n        } else {\n          _parentage.remove(this);\n        }\n      }\n\n      const { initialTeardown: initialFinalizer } = this;\n      if (isFunction(initialFinalizer)) {\n        try {\n          initialFinalizer();\n        } catch (e) {\n          errors = e instanceof UnsubscriptionError ? e.errors : [e];\n        }\n      }\n\n      const { _finalizers } = this;\n      if (_finalizers) {\n        this._finalizers = null;\n        for (const finalizer of _finalizers) {\n          try {\n            execFinalizer(finalizer);\n          } catch (err) {\n            errors = errors ?? [];\n            if (err instanceof UnsubscriptionError) {\n              errors = [...errors, ...err.errors];\n            } else {\n              errors.push(err);\n            }\n          }\n        }\n      }\n\n      if (errors) {\n        throw new UnsubscriptionError(errors);\n      }\n    }\n  }\n\n  /**\n   * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n   * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n   * because it has already been unsubscribed, then whatever finalizer is passed to it\n   * will automatically be executed (unless the finalizer itself is also a closed subscription).\n   *\n   * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n   * subscription to a any subscription will result in no operation. (A noop).\n   *\n   * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n   * operation at all. (A noop).\n   *\n   * `Subscription` instances that are added to this instance will automatically remove themselves\n   * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n   * will need to be removed manually with {@link #remove}\n   *\n   * @param teardown The finalization logic to add to this subscription.\n   */\n  add(teardown: TeardownLogic): void {\n    // Only add the finalizer if it's not undefined\n    // and don't add a subscription to itself.\n    if (teardown && teardown !== this) {\n      if (this.closed) {\n        // If this subscription is already closed,\n        // execute whatever finalizer is handed to it automatically.\n        execFinalizer(teardown);\n      } else {\n        if (teardown instanceof Subscription) {\n          // We don't add closed subscriptions, and we don't add the same subscription\n          // twice. Subscription unsubscribe is idempotent.\n          if (teardown.closed || teardown._hasParent(this)) {\n            return;\n          }\n          teardown._addParent(this);\n        }\n        (this._finalizers = this._finalizers ?? []).push(teardown);\n      }\n    }\n  }\n\n  /**\n   * Checks to see if a this subscription already has a particular parent.\n   * This will signal that this subscription has already been added to the parent in question.\n   * @param parent the parent to check for\n   */\n  private _hasParent(parent: Subscription) {\n    const { _parentage } = this;\n    return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n  }\n\n  /**\n   * Adds a parent to this subscription so it can be removed from the parent if it\n   * unsubscribes on it's own.\n   *\n   * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n   * @param parent The parent subscription to add\n   */\n  private _addParent(parent: Subscription) {\n    const { _parentage } = this;\n    this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n  }\n\n  /**\n   * Called on a child when it is removed via {@link #remove}.\n   * @param parent The parent to remove\n   */\n  private _removeParent(parent: Subscription) {\n    const { _parentage } = this;\n    if (_parentage === parent) {\n      this._parentage = null;\n    } else if (Array.isArray(_parentage)) {\n      arrRemove(_parentage, parent);\n    }\n  }\n\n  /**\n   * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n   *\n   * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n   * from every other `Subscription` they have been added to. This means that using the `remove` method\n   * is not a common thing and should be used thoughtfully.\n   *\n   * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n   * more than once, you will need to call `remove` the same number of times to remove all instances.\n   *\n   * All finalizer instances are removed to free up memory upon unsubscription.\n   *\n   * @param teardown The finalizer to remove from this subscription\n   */\n  remove(teardown: Exclude<TeardownLogic, void>): void {\n    const { _finalizers } = this;\n    _finalizers && arrRemove(_finalizers, teardown);\n\n    if (teardown instanceof Subscription) {\n      teardown._removeParent(this);\n    }\n  }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n  return (\n    value instanceof Subscription ||\n    (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n  );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n  if (isFunction(finalizer)) {\n    finalizer();\n  } else {\n    finalizer.unsubscribe();\n  }\n}\n","import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n  onUnhandledError: null,\n  onStoppedNotification: null,\n  Promise: undefined,\n  useDeprecatedSynchronousErrorHandling: false,\n  useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n  /**\n   * A registration point for unhandled errors from RxJS. These are errors that\n   * cannot were not handled by consuming code in the usual subscription path. For\n   * example, if you have this configured, and you subscribe to an observable without\n   * providing an error handler, errors from that subscription will end up here. This\n   * will _always_ be called asynchronously on another job in the runtime. This is because\n   * we do not want errors thrown in this user-configured handler to interfere with the\n   * behavior of the library.\n   */\n  onUnhandledError: ((err: any) => void) | null;\n\n  /**\n   * A registration point for notifications that cannot be sent to subscribers because they\n   * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n   * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n   * might want a different behavior. For example, with sources that attempt to report errors\n   * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n   * This will _always_ be called asynchronously on another job in the runtime. This is because\n   * we do not want errors thrown in this user-configured handler to interfere with the\n   * behavior of the library.\n   */\n  onStoppedNotification: ((notification: ObservableNotification<any>, subscriber: Subscriber<any>) => void) | null;\n\n  /**\n   * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n   * methods.\n   *\n   * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n   * Promise constructor. If you need a Promise implementation other than native promises,\n   * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n   */\n  Promise?: PromiseConstructorLike;\n\n  /**\n   * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n   * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n   * call in a try/catch block. It also enables producer interference, a nasty bug\n   * where a multicast can be broken for all observers by a downstream consumer with\n   * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n   * FOR MIGRATION REASONS.\n   *\n   * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n   * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n   * behaviors described above. Will be removed in v8.\n   */\n  useDeprecatedSynchronousErrorHandling: boolean;\n\n  /**\n   * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n   * `unsubscribe()` via `this` context in `next` functions created in observers passed\n   * to `subscribe`.\n   *\n   * This is being removed because the performance was severely problematic, and it could also cause\n   * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n   * their `this` context overwritten.\n   *\n   * @deprecated As of version 8, RxJS will no longer support altering the\n   * context of next functions provided as part of an observer to Subscribe. Instead,\n   * you will have access to a subscription or a signal or token that will allow you to do things like\n   * unsubscribe and test closed status. Will be removed in v8.\n   */\n  useDeprecatedNextContext: boolean;\n}\n","import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n  setTimeout: SetTimeoutFunction;\n  clearTimeout: ClearTimeoutFunction;\n  delegate:\n    | {\n        setTimeout: SetTimeoutFunction;\n        clearTimeout: ClearTimeoutFunction;\n      }\n    | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n  // When accessing the delegate, use the variable rather than `this` so that\n  // the functions can be called without being bound to the provider.\n  setTimeout(handler: () => void, timeout?: number, ...args) {\n    const { delegate } = timeoutProvider;\n    if (delegate?.setTimeout) {\n      return delegate.setTimeout(handler, timeout, ...args);\n    }\n    return setTimeout(handler, timeout, ...args);\n  },\n  clearTimeout(handle) {\n    const { delegate } = timeoutProvider;\n    return (delegate?.clearTimeout || clearTimeout)(handle as any);\n  },\n  delegate: undefined,\n};\n","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n  timeoutProvider.setTimeout(() => {\n    const { onUnhandledError } = config;\n    if (onUnhandledError) {\n      // Execute the user-configured error handler.\n      onUnhandledError(err);\n    } else {\n      // Throw so it is picked up by the runtime's uncaught error mechanism.\n      throw err;\n    }\n  });\n}\n","/* tslint:disable:no-empty */\nexport function noop() { }\n","import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n  return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification<T>(value: T) {\n  return createNotification('N', value, undefined) as NextNotification<T>;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n  return {\n    kind,\n    value,\n    error,\n  };\n}\n","import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n  if (config.useDeprecatedSynchronousErrorHandling) {\n    const isRoot = !context;\n    if (isRoot) {\n      context = { errorThrown: false, error: null };\n    }\n    cb();\n    if (isRoot) {\n      const { errorThrown, error } = context!;\n      context = null;\n      if (errorThrown) {\n        throw error;\n      }\n    }\n  } else {\n    // This is the general non-deprecated path for everyone that\n    // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n    cb();\n  }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n  if (config.useDeprecatedSynchronousErrorHandling && context) {\n    context.errorThrown = true;\n    context.error = err;\n  }\n}\n","import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nexport class Subscriber<T> extends Subscription implements Observer<T> {\n  /**\n   * A static factory for a Subscriber, given a (potentially partial) definition\n   * of an Observer.\n   * @param next The `next` callback of an Observer.\n   * @param error The `error` callback of an\n   * Observer.\n   * @param complete The `complete` callback of an\n   * Observer.\n   * @return A Subscriber wrapping the (partially defined)\n   * Observer represented by the given arguments.\n   * @nocollapse\n   * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n   * method, and there is no reason to be creating instances of `Subscriber` directly.\n   * If you have a specific use case, please file an issue.\n   */\n  static create<T>(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber<T> {\n    return new SafeSubscriber(next, error, complete);\n  }\n\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  protected isStopped: boolean = false;\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  protected destination: Subscriber<any> | Observer<any>; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n  /**\n   * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n   * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n   */\n  constructor(destination?: Subscriber<any> | Observer<any>) {\n    super();\n    if (destination) {\n      this.destination = destination;\n      // Automatically chain subscriptions together here.\n      // if destination is a Subscription, then it is a Subscriber.\n      if (isSubscription(destination)) {\n        destination.add(this);\n      }\n    } else {\n      this.destination = EMPTY_OBSERVER;\n    }\n  }\n\n  /**\n   * The {@link Observer} callback to receive notifications of type `next` from\n   * the Observable, with a value. The Observable may call this method 0 or more\n   * times.\n   * @param {T} [value] The `next` value.\n   * @return {void}\n   */\n  next(value?: T): void {\n    if (this.isStopped) {\n      handleStoppedNotification(nextNotification(value), this);\n    } else {\n      this._next(value!);\n    }\n  }\n\n  /**\n   * The {@link Observer} callback to receive notifications of type `error` from\n   * the Observable, with an attached `Error`. Notifies the Observer that\n   * the Observable has experienced an error condition.\n   * @param {any} [err] The `error` exception.\n   * @return {void}\n   */\n  error(err?: any): void {\n    if (this.isStopped) {\n      handleStoppedNotification(errorNotification(err), this);\n    } else {\n      this.isStopped = true;\n      this._error(err);\n    }\n  }\n\n  /**\n   * The {@link Observer} callback to receive a valueless notification of type\n   * `complete` from the Observable. Notifies the Observer that the Observable\n   * has finished sending push-based notifications.\n   * @return {void}\n   */\n  complete(): void {\n    if (this.isStopped) {\n      handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n    } else {\n      this.isStopped = true;\n      this._complete();\n    }\n  }\n\n  unsubscribe(): void {\n    if (!this.closed) {\n      this.isStopped = true;\n      super.unsubscribe();\n      this.destination = null!;\n    }\n  }\n\n  protected _next(value: T): void {\n    this.destination.next(value);\n  }\n\n  protected _error(err: any): void {\n    try {\n      this.destination.error(err);\n    } finally {\n      this.unsubscribe();\n    }\n  }\n\n  protected _complete(): void {\n    try {\n      this.destination.complete();\n    } finally {\n      this.unsubscribe();\n    }\n  }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind<Fn extends (...args: any[]) => any>(fn: Fn, thisArg: any): Fn {\n  return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver<T> implements Observer<T> {\n  constructor(private partialObserver: Partial<Observer<T>>) {}\n\n  next(value: T): void {\n    const { partialObserver } = this;\n    if (partialObserver.next) {\n      try {\n        partialObserver.next(value);\n      } catch (error) {\n        handleUnhandledError(error);\n      }\n    }\n  }\n\n  error(err: any): void {\n    const { partialObserver } = this;\n    if (partialObserver.error) {\n      try {\n        partialObserver.error(err);\n      } catch (error) {\n        handleUnhandledError(error);\n      }\n    } else {\n      handleUnhandledError(err);\n    }\n  }\n\n  complete(): void {\n    const { partialObserver } = this;\n    if (partialObserver.complete) {\n      try {\n        partialObserver.complete();\n      } catch (error) {\n        handleUnhandledError(error);\n      }\n    }\n  }\n}\n\nexport class SafeSubscriber<T> extends Subscriber<T> {\n  constructor(\n    observerOrNext?: Partial<Observer<T>> | ((value: T) => void) | null,\n    error?: ((e?: any) => void) | null,\n    complete?: (() => void) | null\n  ) {\n    super();\n\n    let partialObserver: Partial<Observer<T>>;\n    if (isFunction(observerOrNext) || !observerOrNext) {\n      // The first argument is a function, not an observer. The next\n      // two arguments *could* be observers, or they could be empty.\n      partialObserver = {\n        next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n        error: error ?? undefined,\n        complete: complete ?? undefined,\n      };\n    } else {\n      // The first argument is a partial observer.\n      let context: any;\n      if (this && config.useDeprecatedNextContext) {\n        // This is a deprecated path that made `this.unsubscribe()` available in\n        // next handler functions passed to subscribe. This only exists behind a flag\n        // now, as it is *very* slow.\n        context = Object.create(observerOrNext);\n        context.unsubscribe = () => this.unsubscribe();\n        partialObserver = {\n          next: observerOrNext.next && bind(observerOrNext.next, context),\n          error: observerOrNext.error && bind(observerOrNext.error, context),\n          complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n        };\n      } else {\n        // The \"normal\" path. Just use the partial observer directly.\n        partialObserver = observerOrNext;\n      }\n    }\n\n    // Wrap the partial observer to ensure it's a full observer, and\n    // make sure proper error handling is accounted for.\n    this.destination = new ConsumerObserver(partialObserver);\n  }\n}\n\nfunction handleUnhandledError(error: any) {\n  if (config.useDeprecatedSynchronousErrorHandling) {\n    captureError(error);\n  } else {\n    // Ideal path, we report this as an unhandled error,\n    // which is thrown on a new call stack.\n    reportUnhandledError(error);\n  }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n  throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification<any>, subscriber: Subscriber<any>) {\n  const { onStoppedNotification } = config;\n  onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly<Observer<any>> & { closed: true } = {\n  closed: true,\n  next: noop,\n  error: defaultErrorHandler,\n  complete: noop,\n};\n","import { Observable } from './Observable';\nimport { EmptyError } from './util/EmptyError';\nimport { SafeSubscriber } from './Subscriber';\n\nexport interface FirstValueFromConfig<T> {\n  defaultValue: T;\n}\n\nexport function firstValueFrom<T, D>(source: Observable<T>, config: FirstValueFromConfig<D>): Promise<T | D>;\nexport function firstValueFrom<T>(source: Observable<T>): Promise<T>;\n\n/**\n * Converts an observable to a promise by subscribing to the observable,\n * and returning a promise that will resolve as soon as the first value\n * arrives from the observable. The subscription will then be closed.\n *\n * If the observable stream completes before any values were emitted, the\n * returned promise will reject with {@link EmptyError} or will resolve\n * with the default value if a default was specified.\n *\n * If the observable stream emits an error, the returned promise will reject\n * with that error.\n *\n * **WARNING**: Only use this with observables you *know* will emit at least one value,\n * *OR* complete. If the source observable does not emit one value or complete, you will\n * end up with a promise that is hung up, and potentially all of the state of an\n * async function hanging out in memory. To avoid this situation, look into adding\n * something like {@link timeout}, {@link take}, {@link takeWhile}, or {@link takeUntil}\n * amongst others.\n *\n * ## Example\n *\n * Wait for the first value from a stream and emit it from a promise in\n * an async function\n *\n * ```ts\n * import { interval, firstValueFrom } from 'rxjs';\n *\n * async function execute() {\n *   const source$ = interval(2000);\n *   const firstNumber = await firstValueFrom(source$);\n *   console.log(`The first number is ${ firstNumber }`);\n * }\n *\n * execute();\n *\n * // Expected output:\n * // 'The first number is 0'\n * ```\n *\n * @see {@link lastValueFrom}\n *\n * @param source the observable to convert to a promise\n * @param config a configuration object to define the `defaultValue` to use if the source completes without emitting a value\n */\nexport function firstValueFrom<T, D>(source: Observable<T>, config?: FirstValueFromConfig<D>): Promise<T | D> {\n  const hasConfig = typeof config === 'object';\n  return new Promise<T | D>((resolve, reject) => {\n    const subscriber = new SafeSubscriber<T>({\n      next: (value) => {\n        resolve(value);\n        subscriber.unsubscribe();\n      },\n      error: reject,\n      complete: () => {\n        if (hasConfig) {\n          resolve(config!.defaultValue);\n        } else {\n          reject(new EmptyError());\n        }\n      },\n    });\n    source.subscribe(subscriber);\n  });\n}\n","export const isArrayLike = (<T>(x: any): x is ArrayLike<T> => x && typeof x.length === 'number' && typeof x !== 'function');","import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike<any> {\n  return isFunction(value?.then);\n}\n","/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n","/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `<T>(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n *   map(i => range(i)),\n *   mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n *   next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n *   next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity<T>(x: T): T {\n  return x;\n}\n","import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe<T, A>(fn1: UnaryFunction<T, A>): UnaryFunction<T, A>;\nexport function pipe<T, A, B>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>): UnaryFunction<T, B>;\nexport function pipe<T, A, B, C>(fn1: UnaryFunction<T, A>, fn2: UnaryFunction<A, B>, fn3: UnaryFunction<B, C>): UnaryFunction<T, C>;\nexport function pipe<T, A, B, C, D>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>\n): UnaryFunction<T, D>;\nexport function pipe<T, A, B, C, D, E>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>\n): UnaryFunction<T, E>;\nexport function pipe<T, A, B, C, D, E, F>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>,\n  fn6: UnaryFunction<E, F>\n): UnaryFunction<T, F>;\nexport function pipe<T, A, B, C, D, E, F, G>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>,\n  fn6: UnaryFunction<E, F>,\n  fn7: UnaryFunction<F, G>\n): UnaryFunction<T, G>;\nexport function pipe<T, A, B, C, D, E, F, G, H>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>,\n  fn6: UnaryFunction<E, F>,\n  fn7: UnaryFunction<F, G>,\n  fn8: UnaryFunction<G, H>\n): UnaryFunction<T, H>;\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>,\n  fn6: UnaryFunction<E, F>,\n  fn7: UnaryFunction<F, G>,\n  fn8: UnaryFunction<G, H>,\n  fn9: UnaryFunction<H, I>\n): UnaryFunction<T, I>;\nexport function pipe<T, A, B, C, D, E, F, G, H, I>(\n  fn1: UnaryFunction<T, A>,\n  fn2: UnaryFunction<A, B>,\n  fn3: UnaryFunction<B, C>,\n  fn4: UnaryFunction<C, D>,\n  fn5: UnaryFunction<D, E>,\n  fn6: UnaryFunction<E, F>,\n  fn7: UnaryFunction<F, G>,\n  fn8: UnaryFunction<G, H>,\n  fn9: UnaryFunction<H, I>,\n  ...fns: UnaryFunction<any, any>[]\n): UnaryFunction<T, unknown>;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on.  \n */\nexport function pipe(...fns: Array<UnaryFunction<any, any>>): UnaryFunction<any, any> {\n  return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray<T, R>(fns: Array<UnaryFunction<T, R>>): UnaryFunction<T, R> {\n  if (fns.length === 0) {\n    return identity as UnaryFunction<any, any>;\n  }\n\n  if (fns.length === 1) {\n    return fns[0];\n  }\n\n  return function piped(input: T): R {\n    return fns.reduce((prev: any, fn: UnaryFunction<T, R>) => fn(prev), input as any);\n  };\n}\n","import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nexport class Observable<T> implements Subscribable<T> {\n  /**\n   * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n   */\n  source: Observable<any> | undefined;\n\n  /**\n   * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n   */\n  operator: Operator<any, T> | undefined;\n\n  /**\n   * @constructor\n   * @param {Function} subscribe the function that is called when the Observable is\n   * initially subscribed to. This function is given a Subscriber, to which new values\n   * can be `next`ed, or an `error` method can be called to raise an error, or\n   * `complete` can be called to notify of a successful completion.\n   */\n  constructor(subscribe?: (this: Observable<T>, subscriber: Subscriber<T>) => TeardownLogic) {\n    if (subscribe) {\n      this._subscribe = subscribe;\n    }\n  }\n\n  // HACK: Since TypeScript inherits static properties too, we have to\n  // fight against TypeScript here so Subject can have a different static create signature\n  /**\n   * Creates a new Observable by calling the Observable constructor\n   * @owner Observable\n   * @method create\n   * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n   * @return {Observable} a new observable\n   * @nocollapse\n   * @deprecated Use `new Observable()` instead. Will be removed in v8.\n   */\n  static create: (...args: any[]) => any = <T>(subscribe?: (subscriber: Subscriber<T>) => TeardownLogic) => {\n    return new Observable<T>(subscribe);\n  };\n\n  /**\n   * Creates a new Observable, with this Observable instance as the source, and the passed\n   * operator defined as the new observable's operator.\n   * @method lift\n   * @param operator the operator defining the operation to take on the observable\n   * @return a new observable with the Operator applied\n   * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n   * If you have implemented an operator using `lift`, it is recommended that you create an\n   * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n   * scratch\" section here: https://rxjs.dev/guide/operators\n   */\n  lift<R>(operator?: Operator<T, R>): Observable<R> {\n    const observable = new Observable<R>();\n    observable.source = this;\n    observable.operator = operator;\n    return observable;\n  }\n\n  subscribe(observerOrNext?: Partial<Observer<T>> | ((value: T) => void)): Subscription;\n  /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n  subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n  /**\n   * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n   *\n   * <span class=\"informal\">Use it when you have all these Observables, but still nothing is happening.</span>\n   *\n   * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n   * might be for example a function that you passed to Observable's constructor, but most of the time it is\n   * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n   * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n   * the thought.\n   *\n   * Apart from starting the execution of an Observable, this method allows you to listen for values\n   * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n   * of the following ways.\n   *\n   * The first way is creating an object that implements {@link Observer} interface. It should have methods\n   * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n   * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n   * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n   * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n   * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n   * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n   * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n   * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n   * an `error` method to avoid missing thrown errors.\n   *\n   * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n   * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n   * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n   * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n   * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n   * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n   *\n   * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n   * and you also handled emissions internally by using operators (e.g. using `tap`).\n   *\n   * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n   * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n   * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n   * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n   *\n   * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n   * It is an Observable itself that decides when these functions will be called. For example {@link of}\n   * by default emits all its values synchronously. Always check documentation for how given Observable\n   * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n   *\n   * #### Examples\n   *\n   * Subscribe with an {@link guide/observer Observer}\n   *\n   * ```ts\n   * import { of } from 'rxjs';\n   *\n   * const sumObserver = {\n   *   sum: 0,\n   *   next(value) {\n   *     console.log('Adding: ' + value);\n   *     this.sum = this.sum + value;\n   *   },\n   *   error() {\n   *     // We actually could just remove this method,\n   *     // since we do not really care about errors right now.\n   *   },\n   *   complete() {\n   *     console.log('Sum equals: ' + this.sum);\n   *   }\n   * };\n   *\n   * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n   *   .subscribe(sumObserver);\n   *\n   * // Logs:\n   * // 'Adding: 1'\n   * // 'Adding: 2'\n   * // 'Adding: 3'\n   * // 'Sum equals: 6'\n   * ```\n   *\n   * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n   *\n   * ```ts\n   * import { of } from 'rxjs'\n   *\n   * let sum = 0;\n   *\n   * of(1, 2, 3).subscribe(\n   *   value => {\n   *     console.log('Adding: ' + value);\n   *     sum = sum + value;\n   *   },\n   *   undefined,\n   *   () => console.log('Sum equals: ' + sum)\n   * );\n   *\n   * // Logs:\n   * // 'Adding: 1'\n   * // 'Adding: 2'\n   * // 'Adding: 3'\n   * // 'Sum equals: 6'\n   * ```\n   *\n   * Cancel a subscription\n   *\n   * ```ts\n   * import { interval } from 'rxjs';\n   *\n   * const subscription = interval(1000).subscribe({\n   *   next(num) {\n   *     console.log(num)\n   *   },\n   *   complete() {\n   *     // Will not be called, even when cancelling subscription.\n   *     console.log('completed!');\n   *   }\n   * });\n   *\n   * setTimeout(() => {\n   *   subscription.unsubscribe();\n   *   console.log('unsubscribed!');\n   * }, 2500);\n   *\n   * // Logs:\n   * // 0 after 1s\n   * // 1 after 2s\n   * // 'unsubscribed!' after 2.5s\n   * ```\n   *\n   * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n   * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n   * Observable.\n   * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n   * the error will be thrown asynchronously as unhandled.\n   * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n   * @return {Subscription} a subscription reference to the registered handlers\n   * @method subscribe\n   */\n  subscribe(\n    observerOrNext?: Partial<Observer<T>> | ((value: T) => void) | null,\n    error?: ((error: any) => void) | null,\n    complete?: (() => void) | null\n  ): Subscription {\n    const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n    errorContext(() => {\n      const { operator, source } = this;\n      subscriber.add(\n        operator\n          ? // We're dealing with a subscription in the\n            // operator chain to one of our lifted operators.\n            operator.call(subscriber, source)\n          : source\n          ? // If `source` has a value, but `operator` does not, something that\n            // had intimate knowledge of our API, like our `Subject`, must have\n            // set it. We're going to just call `_subscribe` directly.\n            this._subscribe(subscriber)\n          : // In all other cases, we're likely wrapping a user-provided initializer\n            // function, so we need to catch errors and handle them appropriately.\n            this._trySubscribe(subscriber)\n      );\n    });\n\n    return subscriber;\n  }\n\n  /** @internal */\n  protected _trySubscribe(sink: Subscriber<T>): TeardownLogic {\n    try {\n      return this._subscribe(sink);\n    } catch (err) {\n      // We don't need to return anything in this case,\n      // because it's just going to try to `add()` to a subscription\n      // above.\n      sink.error(err);\n    }\n  }\n\n  /**\n   * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n   * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n   *\n   * **WARNING**: Only use this with observables you *know* will complete. If the source\n   * observable does not complete, you will end up with a promise that is hung up, and\n   * potentially all of the state of an async function hanging out in memory. To avoid\n   * this situation, look into adding something like {@link timeout}, {@link take},\n   * {@link takeWhile}, or {@link takeUntil} amongst others.\n   *\n   * #### Example\n   *\n   * ```ts\n   * import { interval, take } from 'rxjs';\n   *\n   * const source$ = interval(1000).pipe(take(4));\n   *\n   * async function getTotal() {\n   *   let total = 0;\n   *\n   *   await source$.forEach(value => {\n   *     total += value;\n   *     console.log('observable -> ' + value);\n   *   });\n   *\n   *   return total;\n   * }\n   *\n   * getTotal().then(\n   *   total => console.log('Total: ' + total)\n   * );\n   *\n   * // Expected:\n   * // 'observable -> 0'\n   * // 'observable -> 1'\n   * // 'observable -> 2'\n   * // 'observable -> 3'\n   * // 'Total: 6'\n   * ```\n   *\n   * @param next a handler for each value emitted by the observable\n   * @return a promise that either resolves on observable completion or\n   *  rejects with the handled error\n   */\n  forEach(next: (value: T) => void): Promise<void>;\n\n  /**\n   * @param next a handler for each value emitted by the observable\n   * @param promiseCtor a constructor function used to instantiate the Promise\n   * @return a promise that either resolves on observable completion or\n   *  rejects with the handled error\n   * @deprecated Passing a Promise constructor will no longer be available\n   * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n   * little benefit. If you need this functionality, it is recommended that you either\n   * polyfill Promise, or you create an adapter to convert the returned native promise\n   * to whatever promise implementation you wanted. Will be removed in v8.\n   */\n  forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise<void>;\n\n  forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise<void> {\n    promiseCtor = getPromiseCtor(promiseCtor);\n\n    return new promiseCtor<void>((resolve, reject) => {\n      const subscriber = new SafeSubscriber<T>({\n        next: (value) => {\n          try {\n            next(value);\n          } catch (err) {\n            reject(err);\n            subscriber.unsubscribe();\n          }\n        },\n        error: reject,\n        complete: resolve,\n      });\n      this.subscribe(subscriber);\n    }) as Promise<void>;\n  }\n\n  /** @internal */\n  protected _subscribe(subscriber: Subscriber<any>): TeardownLogic {\n    return this.source?.subscribe(subscriber);\n  }\n\n  /**\n   * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n   * @method Symbol.observable\n   * @return {Observable} this instance of the observable\n   */\n  [Symbol_observable]() {\n    return this;\n  }\n\n  /* tslint:disable:max-line-length */\n  pipe(): Observable<T>;\n  pipe<A>(op1: OperatorFunction<T, A>): Observable<A>;\n  pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): Observable<B>;\n  pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): Observable<C>;\n  pipe<A, B, C, D>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>\n  ): Observable<D>;\n  pipe<A, B, C, D, E>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>\n  ): Observable<E>;\n  pipe<A, B, C, D, E, F>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>,\n    op6: OperatorFunction<E, F>\n  ): Observable<F>;\n  pipe<A, B, C, D, E, F, G>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>,\n    op6: OperatorFunction<E, F>,\n    op7: OperatorFunction<F, G>\n  ): Observable<G>;\n  pipe<A, B, C, D, E, F, G, H>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>,\n    op6: OperatorFunction<E, F>,\n    op7: OperatorFunction<F, G>,\n    op8: OperatorFunction<G, H>\n  ): Observable<H>;\n  pipe<A, B, C, D, E, F, G, H, I>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>,\n    op6: OperatorFunction<E, F>,\n    op7: OperatorFunction<F, G>,\n    op8: OperatorFunction<G, H>,\n    op9: OperatorFunction<H, I>\n  ): Observable<I>;\n  pipe<A, B, C, D, E, F, G, H, I>(\n    op1: OperatorFunction<T, A>,\n    op2: OperatorFunction<A, B>,\n    op3: OperatorFunction<B, C>,\n    op4: OperatorFunction<C, D>,\n    op5: OperatorFunction<D, E>,\n    op6: OperatorFunction<E, F>,\n    op7: OperatorFunction<F, G>,\n    op8: OperatorFunction<G, H>,\n    op9: OperatorFunction<H, I>,\n    ...operations: OperatorFunction<any, any>[]\n  ): Observable<unknown>;\n  /* tslint:enable:max-line-length */\n\n  /**\n   * Used to stitch together functional operators into a chain.\n   * @method pipe\n   * @return {Observable} the Observable result of all of the operators having\n   * been called in the order they were passed in.\n   *\n   * ## Example\n   *\n   * ```ts\n   * import { interval, filter, map, scan } from 'rxjs';\n   *\n   * interval(1000)\n   *   .pipe(\n   *     filter(x => x % 2 === 0),\n   *     map(x => x + x),\n   *     scan((acc, x) => acc + x)\n   *   )\n   *   .subscribe(x => console.log(x));\n   * ```\n   */\n  pipe(...operations: OperatorFunction<any, any>[]): Observable<any> {\n    return pipeFromArray(operations)(this);\n  }\n\n  /* tslint:disable:max-line-length */\n  /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n  toPromise(): Promise<T | undefined>;\n  /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n  toPromise(PromiseCtor: typeof Promise): Promise<T | undefined>;\n  /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n  toPromise(PromiseCtor: PromiseConstructorLike): Promise<T | undefined>;\n  /* tslint:enable:max-line-length */\n\n  /**\n   * Subscribe to this Observable and get a Promise resolving on\n   * `complete` with the last emission (if any).\n   *\n   * **WARNING**: Only use this with observables you *know* will complete. If the source\n   * observable does not complete, you will end up with a promise that is hung up, and\n   * potentially all of the state of an async function hanging out in memory. To avoid\n   * this situation, look into adding something like {@link timeout}, {@link take},\n   * {@link takeWhile}, or {@link takeUntil} amongst others.\n   *\n   * @method toPromise\n   * @param [promiseCtor] a constructor function used to instantiate\n   * the Promise\n   * @return A Promise that resolves with the last value emit, or\n   * rejects on an error. If there were no emissions, Promise\n   * resolves with undefined.\n   * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n   */\n  toPromise(promiseCtor?: PromiseConstructorLike): Promise<T | undefined> {\n    promiseCtor = getPromiseCtor(promiseCtor);\n\n    return new promiseCtor((resolve, reject) => {\n      let value: T | undefined;\n      this.subscribe(\n        (x: T) => (value = x),\n        (err: any) => reject(err),\n        () => resolve(value)\n      );\n    }) as Promise<T | undefined>;\n  }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n  return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver<T>(value: any): value is Observer<T> {\n  return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber<T>(value: any): value is Subscriber<T> {\n  return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n","import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable<any> {\n  return isFunction(input[Symbol_observable]);\n}\n","import { isFunction } from './isFunction';\n\nexport function isAsyncIterable<T>(obj: any): obj is AsyncIterable<T> {\n  return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n","/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n  // TODO: We should create error codes that can be looked up, so this can be less verbose.\n  return new TypeError(\n    `You provided ${\n      input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n    } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n  );\n}\n","export function getSymbolIterator(): symbol {\n  if (typeof Symbol !== 'function' || !Symbol.iterator) {\n    return '@@iterator' as any;\n  }\n\n  return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable<any> {\n  return isFunction(input?.[Symbol_iterator]);\n}\n","import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator<T>(readableStream: ReadableStreamLike<T>): AsyncGenerator<T> {\n  const reader = readableStream.getReader();\n  try {\n    while (true) {\n      const { value, done } = await reader.read();\n      if (done) {\n        return;\n      }\n      yield value!;\n    }\n  } finally {\n    reader.releaseLock();\n  }\n}\n\nexport function isReadableStreamLike<T>(obj: any): obj is ReadableStreamLike<T> {\n  // We don't want to use instanceof checks because they would return\n  // false for instances from another Realm, like an <iframe>.\n  return isFunction(obj?.getReader);\n}\n","import { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { ObservableInput, ObservedValueOf, ReadableStreamLike } from '../types';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { Subscriber } from '../Subscriber';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\n\nexport function innerFrom<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;\nexport function innerFrom<T>(input: ObservableInput<T>): Observable<T> {\n  if (input instanceof Observable) {\n    return input;\n  }\n  if (input != null) {\n    if (isInteropObservable(input)) {\n      return fromInteropObservable(input);\n    }\n    if (isArrayLike(input)) {\n      return fromArrayLike(input);\n    }\n    if (isPromise(input)) {\n      return fromPromise(input);\n    }\n    if (isAsyncIterable(input)) {\n      return fromAsyncIterable(input);\n    }\n    if (isIterable(input)) {\n      return fromIterable(input);\n    }\n    if (isReadableStreamLike(input)) {\n      return fromReadableStreamLike(input);\n    }\n  }\n\n  throw createInvalidObservableTypeError(input);\n}\n\n/**\n * Creates an RxJS Observable from an object that implements `Symbol.observable`.\n * @param obj An object that properly implements `Symbol.observable`.\n */\nexport function fromInteropObservable<T>(obj: any) {\n  return new Observable((subscriber: Subscriber<T>) => {\n    const obs = obj[Symbol_observable]();\n    if (isFunction(obs.subscribe)) {\n      return obs.subscribe(subscriber);\n    }\n    // Should be caught by observable subscribe function error handling.\n    throw new TypeError('Provided object does not correctly implement Symbol.observable');\n  });\n}\n\n/**\n * Synchronously emits the values of an array like and completes.\n * This is exported because there are creation functions and operators that need to\n * make direct use of the same logic, and there's no reason to make them run through\n * `from` conditionals because we *know* they're dealing with an array.\n * @param array The array to emit values from\n */\nexport function fromArrayLike<T>(array: ArrayLike<T>) {\n  return new Observable((subscriber: Subscriber<T>) => {\n    // Loop over the array and emit each value. Note two things here:\n    // 1. We're making sure that the subscriber is not closed on each loop.\n    //    This is so we don't continue looping over a very large array after\n    //    something like a `take`, `takeWhile`, or other synchronous unsubscription\n    //    has already unsubscribed.\n    // 2. In this form, reentrant code can alter that array we're looping over.\n    //    This is a known issue, but considered an edge case. The alternative would\n    //    be to copy the array before executing the loop, but this has\n    //    performance implications.\n    for (let i = 0; i < array.length && !subscriber.closed; i++) {\n      subscriber.next(array[i]);\n    }\n    subscriber.complete();\n  });\n}\n\nexport function fromPromise<T>(promise: PromiseLike<T>) {\n  return new Observable((subscriber: Subscriber<T>) => {\n    promise\n      .then(\n        (value) => {\n          if (!subscriber.closed) {\n            subscriber.next(value);\n            subscriber.complete();\n          }\n        },\n        (err: any) => subscriber.error(err)\n      )\n      .then(null, reportUnhandledError);\n  });\n}\n\nexport function fromIterable<T>(iterable: Iterable<T>) {\n  return new Observable((subscriber: Subscriber<T>) => {\n    for (const value of iterable) {\n      subscriber.next(value);\n      if (subscriber.closed) {\n        return;\n      }\n    }\n    subscriber.complete();\n  });\n}\n\nexport function fromAsyncIterable<T>(asyncIterable: AsyncIterable<T>) {\n  return new Observable((subscriber: Subscriber<T>) => {\n    process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n  });\n}\n\nexport function fromReadableStreamLike<T>(readableStream: ReadableStreamLike<T>) {\n  return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\n\nasync function process<T>(asyncIterable: AsyncIterable<T>, subscriber: Subscriber<T>) {\n  for await (const value of asyncIterable) {\n    subscriber.next(value);\n    // A side-effect may have closed our subscriber,\n    // check before the next iteration.\n    if (subscriber.closed) {\n      return;\n    }\n  }\n  subscriber.complete();\n}\n","import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType<typeof Observable>['lift'] } {\n  return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate<T, R>(\n  init: (liftedSource: Observable<T>, subscriber: Subscriber<R>) => (() => void) | void\n): OperatorFunction<T, R> {\n  return (source: Observable<T>) => {\n    if (hasLift(source)) {\n      return source.lift(function (this: Subscriber<R>, liftedSource: Observable<T>) {\n        try {\n          return init(liftedSource, this);\n        } catch (err) {\n          this.error(err);\n        }\n      });\n    }\n    throw new TypeError('Unable to lift unknown Observable type');\n  };\n}\n","import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber<T>(\n  destination: Subscriber<any>,\n  onNext?: (value: T) => void,\n  onComplete?: () => void,\n  onError?: (err: any) => void,\n  onFinalize?: () => void\n): Subscriber<T> {\n  return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber<T> extends Subscriber<T> {\n  /**\n   * Creates an instance of an `OperatorSubscriber`.\n   * @param destination The downstream subscriber.\n   * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n   * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n   * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n   * and send to the `destination` error handler.\n   * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n   * this handler are sent to the `destination` error handler.\n   * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n   * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n   * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n   * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n   * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n   * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n   */\n  constructor(\n    destination: Subscriber<any>,\n    onNext?: (value: T) => void,\n    onComplete?: () => void,\n    onError?: (err: any) => void,\n    private onFinalize?: () => void,\n    private shouldUnsubscribe?: () => boolean\n  ) {\n    // It's important - for performance reasons - that all of this class's\n    // members are initialized and that they are always initialized in the same\n    // order. This will ensure that all OperatorSubscriber instances have the\n    // same hidden class in V8. This, in turn, will help keep the number of\n    // hidden classes involved in property accesses within the base class as\n    // low as possible. If the number of hidden classes involved exceeds four,\n    // the property accesses will become megamorphic and performance penalties\n    // will be incurred - i.e. inline caches won't be used.\n    //\n    // The reasons for ensuring all instances have the same hidden class are\n    // further discussed in this blog post from Benedikt Meurer:\n    // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n    super(destination);\n    this._next = onNext\n      ? function (this: OperatorSubscriber<T>, value: T) {\n          try {\n            onNext(value);\n          } catch (err) {\n            destination.error(err);\n          }\n        }\n      : super._next;\n    this._error = onError\n      ? function (this: OperatorSubscriber<T>, err: any) {\n          try {\n            onError(err);\n          } catch (err) {\n            // Send any errors that occur down stream.\n            destination.error(err);\n          } finally {\n            // Ensure finalization.\n            this.unsubscribe();\n          }\n        }\n      : super._error;\n    this._complete = onComplete\n      ? function (this: OperatorSubscriber<T>) {\n          try {\n            onComplete();\n          } catch (err) {\n            // Send any errors that occur down stream.\n            destination.error(err);\n          } finally {\n            // Ensure finalization.\n            this.unsubscribe();\n          }\n        }\n      : super._complete;\n  }\n\n  unsubscribe() {\n    if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n      const { closed } = this;\n      super.unsubscribe();\n      // Execute additional teardown if we have any and we didn't already do so.\n      !closed && this.onFinalize?.();\n    }\n  }\n}\n","import { Subscriber } from '../Subscriber';\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/* tslint:disable:max-line-length */\nexport function switchMap<T, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function switchMap<T, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector: undefined\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function switchMap<T, R, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R\n): OperatorFunction<T, R>;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, emitting values only from the most recently projected Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link switchAll}.</span>\n *\n * ![](switchMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each time it observes one of these\n * inner Observables, the output Observable begins emitting the items emitted by\n * that inner Observable. When a new inner Observable is emitted, `switchMap`\n * stops emitting items from the earlier-emitted inner Observable and begins\n * emitting items from the new one. It continues to behave like this for\n * subsequent inner Observables.\n *\n * ## Example\n *\n * Generate new Observable according to source Observable values\n *\n * ```ts\n * import { of, switchMap } from 'rxjs';\n *\n * const switched = of(1, 2, 3).pipe(switchMap(x => of(x, x ** 2, x ** 3)));\n * switched.subscribe(x => console.log(x));\n * // outputs\n * // 1\n * // 1\n * // 1\n * // 2\n * // 4\n * // 8\n * // 3\n * // 9\n * // 27\n * ```\n *\n * Restart an interval Observable on every click event\n *\n * ```ts\n * import { fromEvent, switchMap, interval } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(switchMap(() => interval(1000)));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switchAll}\n * @see {@link switchMapTo}\n *\n * @param {function(value: T, index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @return A function that returns an Observable that emits the result of\n * applying the projection function (and the optional deprecated\n * `resultSelector`) to each item emitted by the source Observable and taking\n * only the values from the most recently projected inner Observable.\n */\nexport function switchMap<T, R, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector?: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R\n): OperatorFunction<T, ObservedValueOf<O> | R> {\n  return operate((source, subscriber) => {\n    let innerSubscriber: Subscriber<ObservedValueOf<O>> | null = null;\n    let index = 0;\n    // Whether or not the source subscription has completed\n    let isComplete = false;\n\n    // We only complete the result if the source is complete AND we don't have an active inner subscription.\n    // This is called both when the source completes and when the inners complete.\n    const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();\n\n    source.subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (value) => {\n          // Cancel the previous inner subscription if there was one\n          innerSubscriber?.unsubscribe();\n          let innerIndex = 0;\n          const outerIndex = index++;\n          // Start the next inner subscription\n          innerFrom(project(value, outerIndex)).subscribe(\n            (innerSubscriber = createOperatorSubscriber(\n              subscriber,\n              // When we get a new inner value, next it through. Note that this is\n              // handling the deprecate result selector here. This is because with this architecture\n              // it ends up being smaller than using the map operator.\n              (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue),\n              () => {\n                // The inner has completed. Null out the inner subscriber to\n                // free up memory and to signal that we have no inner subscription\n                // currently.\n                innerSubscriber = null!;\n                checkComplete();\n              }\n            ))\n          );\n        },\n        () => {\n          isComplete = true;\n          checkComplete();\n        }\n      )\n    );\n  });\n}\n","import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last<T>(arr: T[]): T | undefined {\n  return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n  return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n  return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n  return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n","import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n  return value && isFunction(value.schedule);\n}\n","import { Subscription } from '../Subscription';\nimport { SchedulerAction, SchedulerLike } from '../types';\n\nexport function executeSchedule(\n  parentSubscription: Subscription,\n  scheduler: SchedulerLike,\n  work: () => void,\n  delay: number,\n  repeat: true\n): void;\nexport function executeSchedule(\n  parentSubscription: Subscription,\n  scheduler: SchedulerLike,\n  work: () => void,\n  delay?: number,\n  repeat?: false\n): Subscription;\n\nexport function executeSchedule(\n  parentSubscription: Subscription,\n  scheduler: SchedulerLike,\n  work: () => void,\n  delay = 0,\n  repeat = false\n): Subscription | void {\n  const scheduleSubscription = scheduler.schedule(function (this: SchedulerAction<any>) {\n    work();\n    if (repeat) {\n      parentSubscription.add(this.schedule(null, delay));\n    } else {\n      this.unsubscribe();\n    }\n  }, delay);\n\n  parentSubscription.add(scheduleSubscription);\n\n  if (!repeat) {\n    // Because user-land scheduler implementations are unlikely to properly reuse\n    // Actions for repeat scheduling, we can't trust that the returned subscription\n    // will control repeat subscription scenarios. So we're trying to avoid using them\n    // incorrectly within this library.\n    return scheduleSubscription;\n  }\n}\n","/** @prettier */\nimport { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Re-emits all notifications from source Observable with specified scheduler.\n *\n * <span class=\"informal\">Ensure a specific scheduler is used, from outside of an Observable.</span>\n *\n * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule\n * notifications emitted by the source Observable. It might be useful, if you do not have control over\n * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless.\n *\n * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable,\n * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal\n * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits\n * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`.\n * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split\n * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source\n * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a\n * little bit more, to ensure that they are emitted at expected moments.\n *\n * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications\n * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn`\n * will delay all notifications - including error notifications - while `delay` will pass through error\n * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator\n * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used\n * for notification emissions in general.\n *\n * ## Example\n *\n * Ensure values in subscribe are called just before browser repaint\n *\n * ```ts\n * import { interval, observeOn, animationFrameScheduler } from 'rxjs';\n *\n * const someDiv = document.createElement('div');\n * someDiv.style.cssText = 'width: 200px;background: #09c';\n * document.body.appendChild(someDiv);\n * const intervals = interval(10);      // Intervals are scheduled\n *                                      // with async scheduler by default...\n * intervals.pipe(\n *   observeOn(animationFrameScheduler) // ...but we will observe on animationFrame\n * )                                    // scheduler to ensure smooth animation.\n * .subscribe(val => {\n *   someDiv.style.height = val + 'px';\n * });\n * ```\n *\n * @see {@link delay}\n *\n * @param scheduler Scheduler that will be used to reschedule notifications from source Observable.\n * @param delay Number of milliseconds that states with what delay every notification should be rescheduled.\n * @return A function that returns an Observable that emits the same\n * notifications as the source Observable, but with provided scheduler.\n */\nexport function observeOn<T>(scheduler: SchedulerLike, delay = 0): MonoTypeOperatorFunction<T> {\n  return operate((source, subscriber) => {\n    source.subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay),\n        () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay),\n        (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)\n      )\n    );\n  });\n}\n","import { MonoTypeOperatorFunction, SchedulerLike } from '../types';\nimport { operate } from '../util/lift';\n\n/**\n * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}.\n *\n * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to.\n *\n * Schedulers control the speed and order of emissions to observers from an Observable stream.\n *\n * ![](subscribeOn.png)\n *\n * ## Example\n *\n * Given the following code:\n *\n * ```ts\n * import { of, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3);\n * const b = of(4, 5, 6);\n *\n * merge(a, b).subscribe(console.log);\n *\n * // Outputs\n * // 1\n * // 2\n * // 3\n * // 4\n * // 5\n * // 6\n * ```\n *\n * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to.\n *\n * If we instead use the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emitted by Observable `a`:\n *\n * ```ts\n * import { of, subscribeOn, asyncScheduler, merge } from 'rxjs';\n *\n * const a = of(1, 2, 3).pipe(subscribeOn(asyncScheduler));\n * const b = of(4, 5, 6);\n *\n * merge(a, b).subscribe(console.log);\n *\n * // Outputs\n * // 4\n * // 5\n * // 6\n * // 1\n * // 2\n * // 3\n * ```\n *\n * The reason for this is that Observable `b` emits its values directly and synchronously like before\n * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable.\n *\n * @param scheduler The {@link SchedulerLike} to perform subscription actions on.\n * @param delay A delay to pass to the scheduler to delay subscriptions\n * @return A function that returns an Observable modified so that its\n * subscriptions happen on the specified {@link SchedulerLike}.\n */\nexport function subscribeOn<T>(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction<T> {\n  return operate((source, subscriber) => {\n    subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n  });\n}\n","import { SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\n\nexport function scheduleAsyncIterable<T>(input: AsyncIterable<T>, scheduler: SchedulerLike) {\n  if (!input) {\n    throw new Error('Iterable cannot be null');\n  }\n  return new Observable<T>((subscriber) => {\n    executeSchedule(subscriber, scheduler, () => {\n      const iterator = input[Symbol.asyncIterator]();\n      executeSchedule(\n        subscriber,\n        scheduler,\n        () => {\n          iterator.next().then((result) => {\n            if (result.done) {\n              // This will remove the subscriptions from\n              // the parent subscription.\n              subscriber.complete();\n            } else {\n              subscriber.next(result.value);\n            }\n          });\n        },\n        0,\n        true\n      );\n    });\n  });\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { ObservableInput, SchedulerLike } from '../types';\nimport { Observable } from '../Observable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\n\n/**\n * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions\n * are scheduled on the provided scheduler.\n *\n * @see {@link from}\n * @see {@link of}\n *\n * @param input The observable, array, promise, iterable, etc you would like to schedule\n * @param scheduler The scheduler to use to schedule the subscription and emissions from\n * the returned observable.\n */\nexport function scheduled<T>(input: ObservableInput<T>, scheduler: SchedulerLike): Observable<T> {\n  if (input != null) {\n    if (isInteropObservable(input)) {\n      return scheduleObservable(input, scheduler);\n    }\n    if (isArrayLike(input)) {\n      return scheduleArray(input, scheduler);\n    }\n    if (isPromise(input)) {\n      return schedulePromise(input, scheduler);\n    }\n    if (isAsyncIterable(input)) {\n      return scheduleAsyncIterable(input, scheduler);\n    }\n    if (isIterable(input)) {\n      return scheduleIterable(input, scheduler);\n    }\n    if (isReadableStreamLike(input)) {\n      return scheduleReadableStreamLike(input, scheduler);\n    }\n  }\n  throw createInvalidObservableTypeError(input);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nimport { InteropObservable, SchedulerLike } from '../types';\n\nexport function scheduleObservable<T>(input: InteropObservable<T>, scheduler: SchedulerLike) {\n  return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\nexport function scheduleArray<T>(input: ArrayLike<T>, scheduler: SchedulerLike) {\n  return new Observable<T>((subscriber) => {\n    // The current array index.\n    let i = 0;\n    // Start iterating over the array like on a schedule.\n    return scheduler.schedule(function () {\n      if (i === input.length) {\n        // If we have hit the end of the array like in the\n        // previous job, we can complete.\n        subscriber.complete();\n      } else {\n        // Otherwise let's next the value at the current index,\n        // then increment our index.\n        subscriber.next(input[i++]);\n        // If the last emission didn't cause us to close the subscriber\n        // (via take or some side effect), reschedule the job and we'll\n        // make another pass.\n        if (!subscriber.closed) {\n          this.schedule();\n        }\n      }\n    });\n  });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nimport { SchedulerLike } from '../types';\n\nexport function schedulePromise<T>(input: PromiseLike<T>, scheduler: SchedulerLike) {\n  return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\n\n/**\n * Used in {@link scheduled} to create an observable from an Iterable.\n * @param input The iterable to create an observable from\n * @param scheduler The scheduler to use\n */\nexport function scheduleIterable<T>(input: Iterable<T>, scheduler: SchedulerLike) {\n  return new Observable<T>((subscriber) => {\n    let iterator: Iterator<T, T>;\n\n    // Schedule the initial creation of the iterator from\n    // the iterable. This is so the code in the iterable is\n    // not called until the scheduled job fires.\n    executeSchedule(subscriber, scheduler, () => {\n      // Create the iterator.\n      iterator = (input as any)[Symbol_iterator]();\n\n      executeSchedule(\n        subscriber,\n        scheduler,\n        () => {\n          let value: T;\n          let done: boolean | undefined;\n          try {\n            // Pull the value out of the iterator\n            ({ value, done } = iterator.next());\n          } catch (err) {\n            // We got an error while pulling from the iterator\n            subscriber.error(err);\n            return;\n          }\n\n          if (done) {\n            // If it is \"done\" we just complete. This mimics the\n            // behavior of JavaScript's `for..of` consumption of\n            // iterables, which will not emit the value from an iterator\n            // result of `{ done: true: value: 'here' }`.\n            subscriber.complete();\n          } else {\n            // The iterable is not done, emit the value.\n            subscriber.next(value);\n          }\n        },\n        0,\n        true\n      );\n    });\n\n    // During finalization, if we see this iterator has a `return` method,\n    // then we know it is a Generator, and not just an Iterator. So we call\n    // the `return()` function. This will ensure that any `finally { }` blocks\n    // inside of the generator we can hit will be hit properly.\n    return () => isFunction(iterator?.return) && iterator.return();\n  });\n}\n","import { SchedulerLike, ReadableStreamLike } from '../types';\nimport { Observable } from '../Observable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\n\nexport function scheduleReadableStreamLike<T>(input: ReadableStreamLike<T>, scheduler: SchedulerLike): Observable<T> {\n  return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf } from '../types';\nimport { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\n\nexport function from<O extends ObservableInput<any>>(input: O): Observable<ObservedValueOf<O>>;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function from<O extends ObservableInput<any>>(input: O, scheduler: SchedulerLike | undefined): Observable<ObservedValueOf<O>>;\n\n/**\n * Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object.\n *\n * <span class=\"informal\">Converts almost anything to an Observable.</span>\n *\n * ![](from.png)\n *\n * `from` converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable\" target=\"_blank\">iterable</a>\n * object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated\n * as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be\n * converted through this operator.\n *\n * ## Examples\n *\n * Converts an array to an Observable\n *\n * ```ts\n * import { from } from 'rxjs';\n *\n * const array = [10, 20, 30];\n * const result = from(array);\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 10\n * // 20\n * // 30\n * ```\n *\n * Convert an infinite iterable (from a generator) to an Observable\n *\n * ```ts\n * import { from, take } from 'rxjs';\n *\n * function* generateDoubles(seed) {\n *    let i = seed;\n *    while (true) {\n *      yield i;\n *      i = 2 * i; // double it\n *    }\n * }\n *\n * const iterator = generateDoubles(3);\n * const result = from(iterator).pipe(take(10));\n *\n * result.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 3\n * // 6\n * // 12\n * // 24\n * // 48\n * // 96\n * // 192\n * // 384\n * // 768\n * // 1536\n * ```\n *\n * With `asyncScheduler`\n *\n * ```ts\n * import { from, asyncScheduler } from 'rxjs';\n *\n * console.log('start');\n *\n * const array = [10, 20, 30];\n * const result = from(array, asyncScheduler);\n *\n * result.subscribe(x => console.log(x));\n *\n * console.log('end');\n *\n * // Logs:\n * // 'start'\n * // 'end'\n * // 10\n * // 20\n * // 30\n * ```\n *\n * @see {@link fromEvent}\n * @see {@link fromEventPattern}\n *\n * @param {ObservableInput<T>} A subscription object, a Promise, an Observable-like,\n * an Array, an iterable, or an array-like object to be converted.\n * @param {SchedulerLike} An optional {@link SchedulerLike} on which to schedule the emission of values.\n * @return {Observable<T>}\n */\nexport function from<T>(input: ObservableInput<T>, scheduler?: SchedulerLike): Observable<T> {\n  return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n","import { SchedulerLike, ValueFromArray } from '../types';\nimport { Observable } from '../Observable';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\n\n// Devs are more likely to pass null or undefined than they are a scheduler\n// without accompanying values. To make things easier for (naughty) devs who\n// use the `strictNullChecks: false` TypeScript compiler option, these\n// overloads with explicit null and undefined values are included.\n\nexport function of(value: null): Observable<null>;\nexport function of(value: undefined): Observable<undefined>;\n\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function of(scheduler: SchedulerLike): Observable<never>;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function of<A extends readonly unknown[]>(...valuesAndScheduler: [...A, SchedulerLike]): Observable<ValueFromArray<A>>;\n\nexport function of(): Observable<never>;\n/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */\nexport function of<T>(): Observable<T>;\nexport function of<T>(value: T): Observable<T>;\nexport function of<A extends readonly unknown[]>(...values: A): Observable<ValueFromArray<A>>;\n\n/**\n * Converts the arguments to an observable sequence.\n *\n * <span class=\"informal\">Each argument becomes a `next` notification.</span>\n *\n * ![](of.png)\n *\n * Unlike {@link from}, it does not do any flattening and emits each argument in whole\n * as a separate `next` notification.\n *\n * ## Examples\n *\n * Emit the values `10, 20, 30`\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * of(10, 20, 30)\n *   .subscribe({\n *     next: value => console.log('next:', value),\n *     error: err => console.log('error:', err),\n *     complete: () => console.log('the end'),\n *   });\n *\n * // Outputs\n * // next: 10\n * // next: 20\n * // next: 30\n * // the end\n * ```\n *\n * Emit the array `[1, 2, 3]`\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * of([1, 2, 3])\n *   .subscribe({\n *     next: value => console.log('next:', value),\n *     error: err => console.log('error:', err),\n *     complete: () => console.log('the end'),\n *   });\n *\n * // Outputs\n * // next: [1, 2, 3]\n * // the end\n * ```\n *\n * @see {@link from}\n * @see {@link range}\n *\n * @param {...T} values A comma separated list of arguments you want to be emitted\n * @return {Observable} An Observable that emits the arguments\n * described above and then completes.\n */\nexport function of<T>(...args: Array<T | SchedulerLike>): Observable<T> {\n  const scheduler = popScheduler(args);\n  return from(args as T[], scheduler);\n}\n","import { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\nexport function map<T, R>(project: (value: T, index: number) => R): OperatorFunction<T, R>;\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function map<T, R, A>(project: (this: A, value: T, index: number) => R, thisArg: A): OperatorFunction<T, R>;\n\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * <span class=\"informal\">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.</span>\n *\n * ![](map.png)\n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * ## Example\n *\n * Map every click to the `clientX` position of that click\n *\n * ```ts\n * import { fromEvent, map } from 'rxjs';\n *\n * const clicks = fromEvent<PointerEvent>(document, 'click');\n * const positions = clicks.pipe(map(ev => ev.clientX));\n *\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return A function that returns an Observable that emits the values from the\n * source Observable transformed by the given `project` function.\n */\nexport function map<T, R>(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction<T, R> {\n  return operate((source, subscriber) => {\n    // The index of the value from the source. Used with projection.\n    let index = 0;\n    // Subscribe to the source, all errors and completions are sent along\n    // to the consumer.\n    source.subscribe(\n      createOperatorSubscriber(subscriber, (value: T) => {\n        // Call the projection function with the appropriate this context,\n        // and send the resulting value to the consumer.\n        subscriber.next(project.call(thisArg, value, index++));\n      })\n    );\n  });\n}\n","/**\n * @name objectProperty\n * @summary Assign a get property on the input object\n */\nexport function objectProperty(that, key, getter, getName, index = 0) {\n    const name = getName\n        ? getName(key, index)\n        : key;\n    // There are 3 approaches here -\n    //  - Object.prototype.hasOwnProperty.call(that, key) - this only checks the current class, i.e\n    //    will retuirn false if the property is set in the parent class\n    //  - isUndefined(...) - this may yield a false positive when the property is there, but not set.\n    //    Additionally, on pre-defined getters it may make a call\n    //  - key in that - Does not need to be combined with either of the above and checks the full chain\n    if (!(name in that)) {\n        Object.defineProperty(that, name, {\n            enumerable: true,\n            // Unlike in lazy, we always call into the upper function, i.e. this method\n            // does not cache old values (it is expected to be used for dynamic values)\n            get: function () {\n                return getter(key, index, this);\n            }\n        });\n    }\n}\n/**\n * @name objectProperties\n * @summary Assign get properties on the input object\n */\nexport function objectProperties(that, keys, getter, getName) {\n    for (let i = 0, count = keys.length; i < count; i++) {\n        objectProperty(that, keys[i], getter, getName, i);\n    }\n}\n","import { isFunction } from '@polkadot/util';\nexport function hasEq(o) {\n    return isFunction(o.eq);\n}\n","import { isObject, isUndefined } from '@polkadot/util';\nimport { hasEq } from './util.js';\nfunction hasMismatch(a, b) {\n    return isUndefined(a) || (hasEq(a)\n        ? !a.eq(b)\n        : a !== b);\n}\nfunction notEntry(value) {\n    return !Array.isArray(value) || value.length !== 2;\n}\nfunction compareMapArray(a, b) {\n    // equal number of entries and each entry in the array should match\n    return (a.size === b.length) && !b.some((e) => notEntry(e) ||\n        hasMismatch(a.get(e[0]), e[1]));\n}\nexport function compareMap(a, b) {\n    if (Array.isArray(b)) {\n        return compareMapArray(a, b);\n    }\n    else if (b instanceof Map) {\n        return compareMapArray(a, [...b.entries()]);\n    }\n    else if (isObject(b)) {\n        return compareMapArray(a, Object.entries(b));\n    }\n    return false;\n}\n","import { isFunction, objectProperties, stringify } from '@polkadot/util';\nimport { compareMap } from '../utils/index.js';\n/** @internal */\nfunction decodeJson(value) {\n    return Object.entries(value || {});\n}\n/**\n * @name Json\n * @description\n * Wraps the a JSON structure retrieve via RPC. It extends the standard JS Map with. While it\n * implements a Codec, it is limited in that it can only be used with input objects via RPC,\n * i.e. no hex decoding. Unlike a struct, this waps a JSON object with unknown keys\n * @noInheritDoc\n */\nexport class Json extends Map {\n    constructor(registry, value) {\n        const decoded = decodeJson(value);\n        super(decoded);\n        this.registry = registry;\n        objectProperties(this, decoded.map(([k]) => k), (k) => this.get(k));\n    }\n    /**\n     * @description Always 0, never encodes as a Uint8Array\n     */\n    get encodedLength() {\n        return 0 | 0;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Checks if the value is an empty value\n     */\n    get isEmpty() {\n        return [...this.keys()].length === 0;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return compareMap(this, other);\n    }\n    /**\n     * @description Returns a typed value from the internal map\n     */\n    getT(key) {\n        return this.get(key);\n    }\n    /**\n     * @description Unimplemented, will throw\n     */\n    inspect() {\n        throw new Error('Unimplemented');\n    }\n    /**\n     * @description Unimplemented, will throw\n     */\n    toHex() {\n        throw new Error('Unimplemented');\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return [...this.entries()].reduce((json, [key, value]) => {\n            json[key] = isFunction(value.toHuman)\n                ? value.toHuman()\n                : value;\n            return json;\n        }, {});\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return [...this.entries()].reduce((json, [key, value]) => {\n            json[key] = value;\n            return json;\n        }, {});\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return [...this.entries()].reduce((json, [key, value]) => {\n            json[key] = isFunction(value.toPrimitive)\n                ? value.toPrimitive()\n                : value;\n            return json;\n        }, {});\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Json';\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return stringify(this.toJSON());\n    }\n    /**\n     * @description Unimplemented, will throw\n     */\n    toU8a(_isBare) {\n        throw new Error('Unimplemented');\n    }\n}\n","import { u8aToU8a } from '../u8a/toU8a.js';\nimport { isHex } from './hex.js';\nimport { isString } from './string.js';\n/** @internal */\nfunction isAsciiStr(str) {\n    for (let i = 0, count = str.length; i < count; i++) {\n        const b = str.charCodeAt(i);\n        // check is inlined here, it is faster than making a call\n        if (b < 32 || b > 126) {\n            return false;\n        }\n    }\n    return true;\n}\n/** @internal */\nfunction isAsciiBytes(u8a) {\n    for (let i = 0, count = u8a.length; i < count; i++) {\n        const b = u8a[i] | 0;\n        // check is inlined here, it is faster than making a call\n        if (b < 32 || b > 126) {\n            return false;\n        }\n    }\n    return true;\n}\n/**\n * @name isAscii\n * @summary Tests if the input is printable ASCII\n * @description\n * Checks to see if the input string or Uint8Array is printable ASCII, 32-127 + formatters\n */\nexport function isAscii(value) {\n    return isString(value)\n        ? isHex(value)\n            ? isAsciiBytes(u8aToU8a(value))\n            : isAsciiStr(value)\n        : value\n            ? isAsciiBytes(value)\n            : false;\n}\n","import { isAscii, isUndefined, isUtf8, u8aToHex, u8aToString, u8aToU8a } from '@polkadot/util';\n/**\n * @name Raw\n * @description\n * A basic wrapper around Uint8Array, with no frills and no fuss. It does differ\n * from other implementations where it will consume the full Uint8Array as passed to it.\n * As such it is meant to be subclassed where the wrapper takes care of the\n * actual lengths instead of used directly.\n * @noInheritDoc\n */\nexport class Raw extends Uint8Array {\n    /**\n     * @description This ensures that operators such as clice, filter, map, etc. return\n     * new Array instances (without this we need to apply overrides)\n     */\n    static get [Symbol.species]() {\n        return Uint8Array;\n    }\n    constructor(registry, value, initialU8aLength) {\n        super(u8aToU8a(value));\n        this.registry = registry;\n        this.initialU8aLength = initialU8aLength;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return this.length;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Returns true if the wrapped value contains only ASCII printable characters\n     */\n    get isAscii() {\n        return isAscii(this);\n    }\n    /**\n     * @description Returns true if the type wraps an empty/default all-0 value\n     */\n    get isEmpty() {\n        return !this.length || isUndefined(this.find((b) => !!b));\n    }\n    /**\n     * @description Returns true if the wrapped value contains only utf8 characters\n     */\n    get isUtf8() {\n        return isUtf8(this);\n    }\n    /**\n     * @description Returns the number of bits in the value\n     */\n    bitLength() {\n        return this.length * 8;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        if (other instanceof Uint8Array) {\n            return (this.length === other.length) &&\n                !this.some((b, index) => b !== other[index]);\n        }\n        return this.eq(u8aToU8a(other));\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {\n            outer: [this.toU8a()]\n        };\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        return u8aToHex(this);\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return this.toPrimitive();\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.toHex();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        if (this.isAscii) {\n            const text = this.toUtf8();\n            // ensure we didn't end up with multibyte codepoints\n            if (isAscii(text)) {\n                return text;\n            }\n        }\n        return this.toJSON();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Raw';\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return this.toHex();\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     */\n    toU8a(_isBare) {\n        return Uint8Array.from(this);\n    }\n    /**\n     * @description Returns the wrapped data as a UTF-8 string\n     */\n    toUtf8() {\n        if (!this.isUtf8) {\n            throw new Error('The character sequence is not a valid Utf8 string');\n        }\n        return u8aToString(this);\n    }\n}\n","import { u8aToU8a } from '../u8a/toU8a.js';\nimport { isString } from './string.js';\n/**\n * @name isUtf8\n * @summary Tests if the input is valid Utf8\n * @description\n * Checks to see if the input string or Uint8Array is valid Utf8\n */\nexport function isUtf8(value) {\n    if (!value) {\n        return isString(value);\n    }\n    const u8a = u8aToU8a(value);\n    const len = u8a.length;\n    let i = 0;\n    while (i < len) {\n        if (u8a[i] <= 0x7F) /* 00..7F */ {\n            i += 1;\n        }\n        else if (u8a[i] >= 0xC2 && u8a[i] <= 0xDF) /* C2..DF 80..BF */ {\n            if (i + 1 < len) /* Expect a 2nd byte */ {\n                if (u8a[i + 1] < 0x80 || u8a[i + 1] > 0xBF) {\n                    // *message = \"After a first byte between C2 and DF, expecting a 2nd byte between 80 and BF\";\n                    // *faulty_bytes = 2;\n                    return false;\n                }\n            }\n            else {\n                // *message = \"After a first byte between C2 and DF, expecting a 2nd byte.\";\n                // *faulty_bytes = 1;\n                return false;\n            }\n            i += 2;\n        }\n        else if (u8a[i] === 0xE0) /* E0 A0..BF 80..BF */ {\n            if (i + 2 < len) /* Expect a 2nd and 3rd byte */ {\n                if (u8a[i + 1] < 0xA0 || u8a[i + 1] > 0xBF) {\n                    // *message = \"After a first byte of E0, expecting a 2nd byte between A0 and BF.\";\n                    // *faulty_bytes = 2;\n                    return false;\n                }\n                if (u8a[i + 2] < 0x80 || u8a[i + 2] > 0xBF) {\n                    // *message = \"After a first byte of E0, expecting a 3nd byte between 80 and BF.\";\n                    // *faulty_bytes = 3;\n                    return false;\n                }\n            }\n            else {\n                // *message = \"After a first byte of E0, expecting two following bytes.\";\n                // *faulty_bytes = 1;\n                return false;\n            }\n            i += 3;\n        }\n        else if (u8a[i] >= 0xE1 && u8a[i] <= 0xEC) /* E1..EC 80..BF 80..BF */ {\n            if (i + 2 < len) /* Expect a 2nd and 3rd byte */ {\n                if (u8a[i + 1] < 0x80 || u8a[i + 1] > 0xBF) {\n                    // *message = \"After a first byte between E1 and EC, expecting the 2nd byte between 80 and BF.\";\n                    // *faulty_bytes = 2;\n                    return false;\n                }\n                if (u8a[i + 2] < 0x80 || u8a[i + 2] > 0xBF) {\n                    // *message = \"After a first byte between E1 and EC, expecting the 3rd byte between 80 and BF.\";\n                    // *faulty_bytes = 3;\n                    return false;\n                }\n            }\n            else {\n                // *message = \"After a first byte between E1 and EC, expecting two following bytes.\";\n                // *faulty_bytes = 1;\n                return false;\n            }\n            i += 3;\n        }\n        else if (u8a[i] === 0xED) /* ED 80..9F 80..BF */ {\n            if (i + 2 < len) /* Expect a 2nd and 3rd byte */ {\n                if (u8a[i + 1] < 0x80 || u8a[i + 1] > 0x9F) {\n                    // *message = \"After a first byte of ED, expecting 2nd byte between 80 and 9F.\";\n                    // *faulty_bytes = 2;\n                    return false;\n                }\n                if (u8a[i + 2] < 0x80 || u8a[i + 2] > 0xBF) {\n                    // *message = \"After a first byte of ED, expecting 3rd byte between 80 and BF.\";\n                    // *faulty_bytes = 3;\n                    return false;\n                }\n            }\n            else {\n                // *message = \"After a first byte of ED, expecting two following bytes.\";\n                // *faulty_bytes = 1;\n                return false;\n            }\n            i += 3;\n        }\n        else if (u8a[i] >= 0xEE && u8a[i] <= 0xEF) /* EE..EF 80..BF 80..BF */ {\n            if (i + 2 < len) /* Expect a 2nd and 3rd byte */ {\n                if (u8a[i + 1] < 0x80 || u8a[i + 1] > 0xBF) {\n                    // *message = \"After a first byte between EE and EF, expecting 2nd byte between 80 and BF.\";\n                    // *faulty_bytes = 2;\n                    return false;\n                }\n                if (u8a[i + 2] < 0x80 || u8a[i + 2] > 0xBF) {\n                    // *message = \"After a first byte between EE and EF, expecting 3rd byte between 80 and BF.\";\n                    // *faulty_bytes = 3;\n                    return false;\n                }\n            }\n            else {\n                // *message = \"After a first byte between EE and EF, two following bytes.\";\n                // *faulty_bytes = 1;\n                return false;\n            }\n            i += 3;\n        }\n        else if (u8a[i] === 0xF0) /* F0 90..BF 80..BF 80..BF */ {\n            if (i + 3 < len) /* Expect a 2nd, 3rd 3th byte */ {\n                if (u8a[i + 1] < 0x90 || u8a[i + 1] > 0xBF) {\n                    // *message = \"After a first byte of F0, expecting 2nd byte between 90 and BF.\";\n                    // *faulty_bytes = 2;\n                    return false;\n                }\n                if (u8a[i + 2] < 0x80 || u8a[i + 2] > 0xBF) {\n                    // *message = \"After a first byte of F0, expecting 3rd byte between 80 and BF.\";\n                    // *faulty_bytes = 3;\n                    return false;\n                }\n                if (u8a[i + 3] < 0x80 || u8a[i + 3] > 0xBF) {\n                    // *message = \"After a first byte of F0, expecting 4th byte between 80 and BF.\";\n                    // *faulty_bytes = 4;\n                    return false;\n                }\n            }\n            else {\n                // *message = \"After a first byte of F0, expecting three following bytes.\";\n                // *faulty_bytes = 1;\n                return false;\n            }\n            i += 4;\n        }\n        else if (u8a[i] >= 0xF1 && u8a[i] <= 0xF3) /* F1..F3 80..BF 80..BF 80..BF */ {\n            if (i + 3 < len) /* Expect a 2nd, 3rd 3th byte */ {\n                if (u8a[i + 1] < 0x80 || u8a[i + 1] > 0xBF) {\n                    // *message = \"After a first byte of F1, F2, or F3, expecting a 2nd byte between 80 and BF.\";\n                    // *faulty_bytes = 2;\n                    return false;\n                }\n                if (u8a[i + 2] < 0x80 || u8a[i + 2] > 0xBF) {\n                    // *message = \"After a first byte of F1, F2, or F3, expecting a 3rd byte between 80 and BF.\";\n                    // *faulty_bytes = 3;\n                    return false;\n                }\n                if (u8a[i + 3] < 0x80 || u8a[i + 3] > 0xBF) {\n                    // *message = \"After a first byte of F1, F2, or F3, expecting a 4th byte between 80 and BF.\";\n                    // *faulty_bytes = 4;\n                    return false;\n                }\n            }\n            else {\n                // *message = \"After a first byte of F1, F2, or F3, expecting three following bytes.\";\n                // *faulty_bytes = 1;\n                return false;\n            }\n            i += 4;\n        }\n        else if (u8a[i] === 0xF4) /* F4 80..8F 80..BF 80..BF */ {\n            if (i + 3 < len) /* Expect a 2nd, 3rd 3th byte */ {\n                if (u8a[i + 1] < 0x80 || u8a[i + 1] > 0x8F) {\n                    // *message = \"After a first byte of F4, expecting 2nd byte between 80 and 8F.\";\n                    // *faulty_bytes = 2;\n                    return false;\n                }\n                if (u8a[i + 2] < 0x80 || u8a[i + 2] > 0xBF) {\n                    // *message = \"After a first byte of F4, expecting 3rd byte between 80 and BF.\";\n                    // *faulty_bytes = 3;\n                    return false;\n                }\n                if (u8a[i + 3] < 0x80 || u8a[i + 3] > 0xBF) {\n                    // *message = \"After a first byte of F4, expecting 4th byte between 80 and BF.\";\n                    // *faulty_bytes = 4;\n                    return false;\n                }\n            }\n            else {\n                // *message = \"After a first byte of F4, expecting three following bytes.\";\n                // *faulty_bytes = 1;\n                return false;\n            }\n            i += 4;\n        }\n        else {\n            // *message = \"Expecting bytes in the following ranges: 00..7F C2..F4.\";\n            // *faulty_bytes = 1;\n            return false;\n        }\n    }\n    return true;\n}\n","/**\n * @name DoNotConstruct\n * @description\n * An unknown type that fails on construction with the type info\n */\nexport class DoNotConstruct {\n    constructor(registry, typeName = 'DoNotConstruct') {\n        this.registry = registry;\n        this.__internal__neverError = new Error(`DoNotConstruct: Cannot construct unknown type ${typeName}`);\n        throw this.__internal__neverError;\n    }\n    static with(typeName) {\n        return class extends DoNotConstruct {\n            constructor(registry) {\n                super(registry, typeName);\n            }\n        };\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description Checks if the value is an empty value (always true)\n     */\n    get isEmpty() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description Unimplemented\n     */\n    eq() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description Unimplemented\n     */\n    inspect() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description Unimplemented\n     */\n    toHex() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description Unimplemented\n     */\n    toHuman() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description Unimplemented\n     */\n    toJSON() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description Unimplemented\n     */\n    toPrimitive() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description Unimplemented\n     */\n    toRawType() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description Unimplemented\n     */\n    toString() {\n        throw this.__internal__neverError;\n    }\n    /**\n     * @description Unimplemented\n     */\n    toU8a() {\n        throw this.__internal__neverError;\n    }\n}\n","import { BN } from '../bn/bn.js';\n/**\n * @name u8aToBn\n * @summary Creates a BN from a Uint8Array object.\n * @description\n * `UInt8Array` input values return the actual BN. `null` or `undefined` values returns an `0x0` value.\n * @param value The value to convert\n * @param options Options to pass while converting\n * @param options.isLe Convert using Little Endian (default)\n * @param options.isNegative Convert using two's complement\n * @example\n * <BR>\n *\n * ```javascript\n * import { u8aToBn } from '@polkadot/util';\n *\n * u8aToHex(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0xf])); // 0x68656c0f\n * ```\n */\nexport function u8aToBn(value, { isLe = true, isNegative = false } = {}) {\n    // slice + reverse is expensive, however SCALE is LE by default so this is the path\n    // we are most interested in (the BE is added for the sake of being comprehensive)\n    if (!isLe) {\n        value = value.slice().reverse();\n    }\n    const count = value.length;\n    // shortcut for <= u48 values - in this case the manual conversion\n    // here seems to be more efficient than passing the full array\n    if (isNegative && count && (value[count - 1] & 0x80)) {\n        // Most common case i{8, 16, 32} default LE SCALE-encoded\n        // For <= 32, we also optimize the xor to a single op\n        switch (count) {\n            case 0:\n                return new BN(0);\n            case 1:\n                return new BN(((value[0] ^ 255) * -1) - 1);\n            case 2:\n                return new BN((((value[0] + (value[1] << 8)) ^ 65535) * -1) - 1);\n            case 3:\n                return new BN((((value[0] + (value[1] << 8) + (value[2] << 16)) ^ 16777215) * -1) - 1);\n            case 4:\n                // for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to\n                // 32-bit, in the case where the top-most bit is set this yields a negative value\n                return new BN((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 16777216)) ^ 4294967295) * -1) - 1);\n            case 5:\n                return new BN(((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 16777216)) ^ 4294967295) + ((value[4] ^ 0xff) * 4294967296)) * -1) - 1);\n            case 6:\n                return new BN(((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 16777216)) ^ 4294967295) + (((value[4] + (value[5] << 8)) ^ 65535) * 4294967296)) * -1) - 1);\n            default:\n                return new BN(value, 'le').fromTwos(count * 8);\n        }\n    }\n    // Most common case - u{8, 16, 32} default LE SCALE-encoded\n    //\n    // There are some slight benefits in unrolling this specific loop,\n    // however it comes with diminishing returns since here the actual\n    // `new BN` does seem to take up the bulk of the time\n    switch (count) {\n        case 0:\n            return new BN(0);\n        case 1:\n            return new BN(value[0]);\n        case 2:\n            return new BN(value[0] + (value[1] << 8));\n        case 3:\n            return new BN(value[0] + (value[1] << 8) + (value[2] << 16));\n        case 4:\n            // for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to\n            // 32-bit, in the case where the top-most bit is set this yields a negative value\n            return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 16777216));\n        case 5:\n            return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + ((value[3] + (value[4] << 8)) * 16777216));\n        case 6:\n            return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + ((value[3] + (value[4] << 8) + (value[5] << 16)) * 16777216));\n        default:\n            return new BN(value, 'le');\n    }\n}\n","import { BN } from '../bn/index.js';\nimport { u8aToBn, u8aToU8a } from '../u8a/index.js';\n/**\n * @name compactFromU8a\n * @description Retrives the offset and encoded length from a compact-prefixed value\n * @example\n * <BR>\n *\n * ```javascript\n * import { compactFromU8a } from '@polkadot/util';\n *\n * const [offset, length] = compactFromU8a(new Uint8Array([254, 255, 3, 0]));\n *\n * console.log('value offset=', offset, 'length=', length); // 4, 0xffff\n * ```\n */\nexport function compactFromU8a(input) {\n    const u8a = u8aToU8a(input);\n    // The u8a is manually converted here for 1, 2 & 4 lengths, it is 2x faster\n    // than doing an additional call to u8aToBn (as with variable length)\n    switch (u8a[0] & 0b11) {\n        case 0b00:\n            return [1, new BN(u8a[0] >>> 2)];\n        case 0b01:\n            return [2, new BN((u8a[0] + (u8a[1] << 8)) >>> 2)];\n        case 0b10:\n            // for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to\n            // 32-bit, in the case where the top-most bit is set this yields a negative value\n            return [4, new BN((u8a[0] + (u8a[1] << 8) + (u8a[2] << 16) + (u8a[3] * 16777216)) >>> 2)];\n        // 0b11\n        default: {\n            // add 5 to shifted (4 for base length, 1 for this byte)\n            const offset = (u8a[0] >>> 2) + 5;\n            // we unroll the loop\n            switch (offset) {\n                // there still could be 4 bytes data, similar to 0b10 above (with offsets)\n                case 5:\n                    // for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to\n                    // 32-bit, in the case where the top-most bit is set this yields a negative value\n                    return [5, new BN(u8a[1] + (u8a[2] << 8) + (u8a[3] << 16) + (u8a[4] * 16777216))];\n                case 6:\n                    return [6, new BN(u8a[1] + (u8a[2] << 8) + (u8a[3] << 16) + ((u8a[4] + (u8a[5] << 8)) * 16777216))];\n                // 6 bytes data is the maximum, 48 bits (56 would overflow)\n                case 7:\n                    return [7, new BN(u8a[1] + (u8a[2] << 8) + (u8a[3] << 16) + ((u8a[4] + (u8a[5] << 8) + (u8a[6] << 16)) * 16777216))];\n                // for anything else, use the non-unrolled version\n                default:\n                    return [offset, u8aToBn(u8a.subarray(1, offset))];\n            }\n        }\n    }\n}\n/**\n * @name compactFromU8aLim\n * @description A limited version of [[compactFromU8a]], accepting only Uint8Array inputs for values <= 48 bits\n */\nexport function compactFromU8aLim(u8a) {\n    // The u8a is manually converted here for 1, 2 & 4 lengths, it is 2x faster\n    // than doing an additional call to u8aToBn (as with variable length)\n    switch (u8a[0] & 0b11) {\n        case 0b00:\n            return [1, u8a[0] >>> 2];\n        case 0b01:\n            return [2, (u8a[0] + (u8a[1] << 8)) >>> 2];\n        case 0b10:\n            // for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to\n            // 32-bit, in the case where the top-most bit is set this yields a negative value\n            return [4, (u8a[0] + (u8a[1] << 8) + (u8a[2] << 16) + (u8a[3] * 16777216)) >>> 2];\n        // 0b11\n        default: {\n            // add 5 to shifted (4 for base length, 1 for this byte)\n            // we unroll the loop\n            switch ((u8a[0] >>> 2) + 5) {\n                // there still could be 4 bytes data, similar to 0b10 above (with offsets)\n                case 5:\n                    return [5, u8a[1] + (u8a[2] << 8) + (u8a[3] << 16) + (u8a[4] * 16777216)];\n                case 6:\n                    return [6, u8a[1] + (u8a[2] << 8) + (u8a[3] << 16) + ((u8a[4] + (u8a[5] << 8)) * 16777216)];\n                // 6 bytes data is the maximum, 48 bits (56 would overflow)\n                case 7:\n                    return [7, u8a[1] + (u8a[2] << 8) + (u8a[3] << 16) + ((u8a[4] + (u8a[5] << 8) + (u8a[6] << 16)) * 16777216)];\n                // for anything else, we are above the actual MAX_SAFE_INTEGER - bail out\n                default:\n                    throw new Error('Compact input is > Number.MAX_SAFE_INTEGER');\n            }\n        }\n    }\n}\n","import { BN } from './bn.js';\n/**\n * @name BN_ZERO\n * @summary BN constant for 0.\n */\nexport const BN_ZERO = /*#__PURE__*/ new BN(0);\n/**\n * @name BN_ONE\n * @summary BN constant for 1.\n */\nexport const BN_ONE = /*#__PURE__*/ new BN(1);\n/**\n * @name BN_TWO\n * @summary BN constant for 2.\n */\nexport const BN_TWO = /*#__PURE__*/ new BN(2);\n/**\n * @name BN_THREE\n * @summary BN constant for 3.\n */\nexport const BN_THREE = /*#__PURE__*/ new BN(3);\n/**\n * @name BN_FOUR\n * @summary BN constant for 4.\n */\nexport const BN_FOUR = /*#__PURE__*/ new BN(4);\n/**\n * @name BN_FIVE\n * @summary BN constant for 5.\n */\nexport const BN_FIVE = /*#__PURE__*/ new BN(5);\n/**\n * @name BN_SIX\n * @summary BN constant for 6.\n */\nexport const BN_SIX = /*#__PURE__*/ new BN(6);\n/**\n * @name BN_SEVEN\n * @summary BN constant for 7.\n */\nexport const BN_SEVEN = /*#__PURE__*/ new BN(7);\n/**\n * @name BN_EIGHT\n * @summary BN constant for 8.\n */\nexport const BN_EIGHT = /*#__PURE__*/ new BN(8);\n/**\n * @name BN_NINE\n * @summary BN constant for 9.\n */\nexport const BN_NINE = /*#__PURE__*/ new BN(9);\n/**\n * @name BN_TEN\n * @summary BN constant for 10.\n */\nexport const BN_TEN = /*#__PURE__*/ new BN(10);\n/**\n * @name BN_HUNDRED\n * @summary BN constant for 100.\n */\nexport const BN_HUNDRED = /*#__PURE__*/ new BN(100);\n/**\n * @name BN_THOUSAND\n * @summary BN constant for 1,000.\n */\nexport const BN_THOUSAND = /*#__PURE__*/ new BN(1000);\n/**\n * @name BN_MILLION\n * @summary BN constant for 1,000,000.\n */\nexport const BN_MILLION = /*#__PURE__*/ new BN(1000000);\n/**\n * @name BN_BILLION\n * @summary BN constant for 1,000,000,000.\n */\nexport const BN_BILLION = /*#__PURE__*/ new BN(1000000000);\n/**\n * @name BN_QUINTILL\n * @summary BN constant for 1,000,000,000,000,000,000.\n */\nexport const BN_QUINTILL = BN_BILLION.mul(BN_BILLION);\n/**\n * @name BN_MAX_INTEGER\n * @summary BN constant for MAX_SAFE_INTEGER\n */\nexport const BN_MAX_INTEGER = /*#__PURE__*/ new BN(Number.MAX_SAFE_INTEGER);\n/**\n * @name BN_SQRT_MAX_INTEGER\n * @summary BN constant for Math.sqrt(MAX_SAFE_INTEGER)\n */\nexport const BN_SQRT_MAX_INTEGER = /*#__PURE__*/ new BN(94906265);\n","import { BN } from '../bn/bn.js';\nimport { hexStripPrefix } from './stripPrefix.js';\n/**\n * @name hexToBn\n * @summary Creates a BN.js object from a hex string.\n * @description\n * `null` inputs returns a `BN(0)` result. Hex input values return the actual value converted to a BN. Anything that is not a hex string (including the `0x` prefix) throws an error.\n * @param _value The value to convert\n * @param _options Options to pass while converting\n * @param _options.isLe Convert using Little Endian\n * @param _options.isNegative Convert using two's complement\n * @example\n * <BR>\n *\n * ```javascript\n * import { hexToBn } from '@polkadot/util';\n *\n * hexToBn('0x123480001f'); // => BN(0x123480001f)\n * ```\n */\nexport function hexToBn(value, { isLe = false, isNegative = false } = {}) {\n    if (!value || value === '0x') {\n        return new BN(0);\n    }\n    const stripped = hexStripPrefix(value);\n    const bn = new BN(stripped, 16, isLe ? 'le' : 'be');\n    // fromTwos takes as parameter the number of bits, which is the hex length\n    // multiplied by 4 (2 bytes being 8 bits)\n    return isNegative\n        ? bn.fromTwos(stripped.length * 4)\n        : bn;\n}\n","import { REGEX_HEX_NOPREFIX, REGEX_HEX_PREFIXED } from '../is/hex.js';\n/**\n * @name hexStripPrefix\n * @summary Strips any leading `0x` prefix.\n * @description\n * Tests for the existence of a `0x` prefix, and returns the value without the prefix. Un-prefixed values are returned as-is.\n * @example\n * <BR>\n *\n * ```javascript\n * import { hexStripPrefix } from '@polkadot/util';\n *\n * console.log('stripped', hexStripPrefix('0x1234')); // => 1234\n * ```\n */\nexport function hexStripPrefix(value) {\n    if (!value || value === '0x') {\n        return '';\n    }\n    else if (REGEX_HEX_PREFIXED.test(value)) {\n        return value.substring(2);\n    }\n    else if (REGEX_HEX_NOPREFIX.test(value)) {\n        return value;\n    }\n    throw new Error(`Expected hex value to convert, found '${value}'`);\n}\n","import { isOn } from './helpers.js';\nexport const isToBigInt = /*#__PURE__*/ isOn('toBigInt');\n","import { isOn } from './helpers.js';\nexport const isToBn = /*#__PURE__*/ isOn('toBn');\n","import { hexToBn } from '../hex/toBn.js';\nimport { isBigInt } from '../is/bigInt.js';\nimport { isHex } from '../is/hex.js';\nimport { isToBigInt } from '../is/toBigInt.js';\nimport { isToBn } from '../is/toBn.js';\nimport { BN } from './bn.js';\n/**\n * @name bnToBn\n * @summary Creates a BN value from a BN, bigint, string (base 10 or hex) or number input.\n * @description\n * `null` inputs returns a `0x0` result, BN values returns the value, numbers returns a BN representation.\n * @example\n * <BR>\n *\n * ```javascript\n * import BN from 'bn.js';\n * import { bnToBn } from '@polkadot/util';\n *\n * bnToBn(0x1234); // => BN(0x1234)\n * bnToBn(new BN(0x1234)); // => BN(0x1234)\n * ```\n */\nexport function bnToBn(value) {\n    return value\n        ? BN.isBN(value)\n            ? value\n            : isHex(value)\n                ? hexToBn(value.toString())\n                : isBigInt(value)\n                    ? new BN(value.toString())\n                    : isToBn(value)\n                        ? value.toBn()\n                        : isToBigInt(value)\n                            ? new BN(value.toBigInt().toString())\n                            : new BN(value)\n        : new BN(0);\n}\n","import { bnToBn } from './toBn.js';\nconst DEFAULT_OPTS = { bitLength: -1, isLe: true, isNegative: false };\n/**\n * @name bnToU8a\n * @summary Creates a Uint8Array object from a BN.\n * @description\n * `null`/`undefined`/`NaN` inputs returns an empty `Uint8Array` result. `BN` input values return the actual bytes value converted to a `Uint8Array`. Optionally convert using little-endian format if `isLE` is set.\n * @example\n * <BR>\n *\n * ```javascript\n * import { bnToU8a } from '@polkadot/util';\n *\n * bnToU8a(new BN(0x1234)); // => [0x12, 0x34]\n * ```\n */\nexport function bnToU8a(value, { bitLength = -1, isLe = true, isNegative = false } = DEFAULT_OPTS) {\n    const valueBn = bnToBn(value);\n    const byteLength = bitLength === -1\n        ? Math.ceil(valueBn.bitLength() / 8)\n        : Math.ceil((bitLength || 0) / 8);\n    if (!value) {\n        return bitLength === -1\n            ? new Uint8Array(1)\n            : new Uint8Array(byteLength);\n    }\n    const output = new Uint8Array(byteLength);\n    const bn = isNegative\n        ? valueBn.toTwos(byteLength * 8)\n        : valueBn;\n    output.set(bn.toArray(isLe ? 'le' : 'be', byteLength), 0);\n    return output;\n}\n","import { BN, BN_ONE, BN_TWO, bnToBn, bnToU8a } from '../bn/index.js';\nimport { u8aConcatStrict } from '../u8a/index.js';\nconst MAX_U8 = BN_TWO.pow(new BN(8 - 2)).isub(BN_ONE);\nconst MAX_U16 = BN_TWO.pow(new BN(16 - 2)).isub(BN_ONE);\nconst MAX_U32 = BN_TWO.pow(new BN(32 - 2)).isub(BN_ONE);\nconst BL_16 = { bitLength: 16 };\nconst BL_32 = { bitLength: 32 };\n/**\n * @name compactToU8a\n * @description Encodes a number into a compact representation\n * @example\n * <BR>\n *\n * ```javascript\n * import { compactToU8a } from '@polkadot/util';\n *\n * console.log(compactToU8a(511, 32)); // Uint8Array([0b11111101, 0b00000111])\n * ```\n */\nexport function compactToU8a(value) {\n    const bn = bnToBn(value);\n    if (bn.lte(MAX_U8)) {\n        return new Uint8Array([bn.toNumber() << 2]);\n    }\n    else if (bn.lte(MAX_U16)) {\n        return bnToU8a(bn.shln(2).iadd(BN_ONE), BL_16);\n    }\n    else if (bn.lte(MAX_U32)) {\n        return bnToU8a(bn.shln(2).iadd(BN_TWO), BL_32);\n    }\n    const u8a = bnToU8a(bn);\n    let length = u8a.length;\n    // adjust to the minimum number of bytes\n    while (u8a[length - 1] === 0) {\n        length--;\n    }\n    if (length < 4) {\n        throw new Error('Invalid length, previous checks match anything less than 2^30');\n    }\n    return u8aConcatStrict([\n        // subtract 4 as minimum (also catered for in decoding)\n        new Uint8Array([((length - 4) << 2) + 0b11]),\n        u8a.subarray(0, length)\n    ]);\n}\n","import { isUndefined } from '@polkadot/util';\nimport { hasEq } from './util.js';\nexport function compareArray(a, b) {\n    if (Array.isArray(b)) {\n        return (a.length === b.length) && isUndefined(a.find((v, index) => hasEq(v)\n            ? !v.eq(b[index])\n            : v !== b[index]));\n    }\n    return false;\n}\n","import { compactToU8a, u8aConcatStrict, u8aToHex } from '@polkadot/util';\nimport { compareArray } from '../utils/compareArray.js';\n/**\n * @name AbstractArray\n * @description\n * This manages codec arrays. It is an extension to Array, providing\n * specific encoding/decoding on top of the base type.\n * @noInheritDoc\n */\nexport class AbstractArray extends Array {\n    /**\n     * @description This ensures that operators such as clice, filter, map, etc. return\n     * new Array instances (without this we need to apply overrides)\n     */\n    static get [Symbol.species]() {\n        return Array;\n    }\n    constructor(registry, length) {\n        super(length);\n        this.registry = registry;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        // We need to loop through all entries since they may have a variable length themselves,\n        // e.g. when a Vec or Compact is contained withing, it has a variable length based on data\n        const count = this.length;\n        let total = compactToU8a(count).length;\n        for (let i = 0; i < count; i++) {\n            total += this[i].encodedLength;\n        }\n        return total;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Checks if the value is an empty value\n     */\n    get isEmpty() {\n        return this.length === 0;\n    }\n    /**\n     * @description The length of the value\n     */\n    get length() {\n        // only included here since we ignore inherited docs\n        return super.length;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return compareArray(this, other);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {\n            inner: this.inspectInner(),\n            outer: [compactToU8a(this.length)]\n        };\n    }\n    /**\n     * @internal\n     * @description Internal per-item inspection of internal values\n     */\n    inspectInner() {\n        const count = this.length;\n        const inner = new Array(count);\n        for (let i = 0; i < count; i++) {\n            inner[i] = this[i].inspect();\n        }\n        return inner;\n    }\n    /**\n     * @description Converts the Object to an standard JavaScript Array\n     */\n    toArray() {\n        return Array.from(this);\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        return u8aToHex(this.toU8a());\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        const count = this.length;\n        const result = new Array(count);\n        for (let i = 0; i < count; i++) {\n            result[i] = this[i] && this[i].toHuman(isExtended);\n        }\n        return result;\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        const count = this.length;\n        const result = new Array(count);\n        for (let i = 0; i < count; i++) {\n            // We actually log inside the U8a decoding and use JSON.stringify(...), which\n            // means that the Vec may be partially populated (same applies to toHuman, same check)\n            result[i] = this[i] && this[i].toJSON();\n        }\n        return result;\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        const count = this.length;\n        const result = new Array(count);\n        for (let i = 0; i < count; i++) {\n            result[i] = this[i] && this[i].toPrimitive();\n        }\n        return result;\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        const count = this.length;\n        const result = new Array(count);\n        for (let i = 0; i < count; i++) {\n            result[i] = this[i].toString();\n        }\n        return `[${result.join(', ')}]`;\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        const encoded = this.toU8aInner();\n        return isBare\n            ? u8aConcatStrict(encoded)\n            : u8aConcatStrict([compactToU8a(this.length), ...encoded]);\n    }\n    /**\n     * @internal\n     * @description Internal per-item SCALE encoding of contained values\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8aInner(isBare) {\n        const count = this.length;\n        const encoded = new Array(count);\n        for (let i = 0; i < count; i++) {\n            encoded[i] = this[i].toU8a(isBare);\n        }\n        return encoded;\n    }\n}\n","export const CC_TO_UP = new Array(256);\nexport const CC_TO_LO = new Array(256);\nfor (let i = 0, count = CC_TO_UP.length; i < count; i++) {\n    CC_TO_LO[i] = String.fromCharCode(i).toLowerCase();\n    CC_TO_UP[i] = String.fromCharCode(i).toUpperCase();\n}\n/** @internal */\nfunction formatAllCaps(w) {\n    return w.slice(0, w.length - 1).toLowerCase() + CC_TO_UP[w.charCodeAt(w.length - 1)];\n}\n/**\n * @internal\n *\n * Inspired by https://stackoverflow.com/a/2970667\n *\n * This is not as optimal as the original SO answer (we split into per-word),\n * however it does pass the tests (which the SO version doesn't) and is still\n * a major improvement over the original camelcase npm package -\n *\n *   camelcase: 20.88 μs/op\n *        this:  1.00 μs/op\n *\n * Caveat of this: only Ascii, but acceptable for the intended usecase\n */\nfunction converter(format) {\n    return (value) => {\n        const parts = value\n            // replace all separators (including consequtive) with spaces\n            .replace(/[-_., ]+/g, ' ')\n            // we don't want leading or trailing spaces\n            .trim()\n            // split into words\n            .split(' ');\n        let result = '';\n        for (let i = 0, count = parts.length; i < count; i++) {\n            const w = parts[i];\n            // apply the formatting\n            result += format(/^[\\dA-Z]+$/.test(w)\n                // all full uppercase + letters are changed to lowercase\n                ? w.toLowerCase()\n                // all consecutive capitals + letters are changed to lowercase\n                // e.g. UUID64 -> uuid64, while preserving splits, eg. NFTOrder -> nftOrder\n                : w.replace(/^[\\dA-Z]{2,}[^a-z]/, formatAllCaps), i);\n        }\n        return result;\n    };\n}\n/**\n * @name stringCamelCase\n * @summary Convert a dash/dot/underscore/space separated Ascii string/String to camelCase\n */\nexport const stringCamelCase = /*#__PURE__*/ converter((w, i) => \n(i ? CC_TO_UP[w.charCodeAt(0)] : CC_TO_LO[w.charCodeAt(0)]) + w.slice(1));\n/**\n * @name stringPascalCase\n * @summary Convert a dash/dot/underscore/space separated Ascii string/String to PascalCase\n */\nexport const stringPascalCase = /*#__PURE__*/ converter((w) => \nCC_TO_UP[w.charCodeAt(0)] + w.slice(1));\n","/**\n * @internal\n * From a type string or class, return the associated type class\n */\nexport function typeToConstructor(registry, type) {\n    return typeof type === 'function'\n        ? type\n        : registry.createClassUnsafe(type);\n}\n/**\n * @internal\n * Takes an input array of types and returns the associated classes for it\n*/\nexport function typesToConstructors(registry, types) {\n    const count = types.length;\n    const result = new Array(count);\n    for (let i = 0; i < count; i++) {\n        result[i] = typeToConstructor(registry, types[i]);\n    }\n    return result;\n}\n/**\n * @internal\n * Takes an input map of the form `{ [string]: string | CodecClass }` and returns a map of `{ [string]: CodecClass }`\n */\nexport function mapToTypeMap(registry, input) {\n    const entries = Object.entries(input);\n    const count = entries.length;\n    const output = [new Array(count), new Array(count)];\n    for (let i = 0; i < count; i++) {\n        output[1][i] = entries[i][0];\n        output[0][i] = typeToConstructor(registry, entries[i][1]);\n    }\n    return output;\n}\n","export function typesToMap(registry, [Types, keys]) {\n    const result = {};\n    for (let i = 0, count = keys.length; i < count; i++) {\n        result[keys[i]] = registry.getClassName(Types[i]) || new Types[i](registry).toRawType();\n    }\n    return result;\n}\n","import { isNull } from '@polkadot/util';\n/**\n * @name Null\n * @description\n * Implements a type that does not contain anything (apart from `null`)\n */\nexport class Null {\n    constructor(registry) {\n        this.encodedLength = 0;\n        this.isEmpty = true;\n        this.initialU8aLength = 0;\n        this.registry = registry;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        throw new Error('.hash is not implemented on Null');\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return other instanceof Null || isNull(other);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {};\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        return '0x';\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return this.toJSON();\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return null;\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return null;\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Null';\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return '';\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     */\n    toU8a(_isBare) {\n        return new Uint8Array();\n    }\n}\n","import { identity, isHex, isNumber, isObject, isString, isU8a, objectProperties, stringCamelCase, stringify, stringPascalCase, u8aConcatStrict, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { mapToTypeMap, typesToMap } from '../utils/index.js';\nimport { Null } from './Null.js';\nfunction isRustEnum(def) {\n    const defValues = Object.values(def);\n    if (defValues.some((v) => isNumber(v))) {\n        if (!defValues.every((v) => isNumber(v) && v >= 0 && v <= 255)) {\n            throw new Error('Invalid number-indexed enum definition');\n        }\n        return false;\n    }\n    return true;\n}\nfunction extractDef(registry, _def) {\n    const def = {};\n    let isBasic;\n    let isIndexed;\n    if (Array.isArray(_def)) {\n        for (let i = 0, count = _def.length; i < count; i++) {\n            def[_def[i]] = { Type: Null, index: i };\n        }\n        isBasic = true;\n        isIndexed = false;\n    }\n    else if (isRustEnum(_def)) {\n        const [Types, keys] = mapToTypeMap(registry, _def);\n        for (let i = 0, count = keys.length; i < count; i++) {\n            def[keys[i]] = { Type: Types[i], index: i };\n        }\n        isBasic = !Object.values(def).some(({ Type }) => Type !== Null);\n        isIndexed = false;\n    }\n    else {\n        const entries = Object.entries(_def);\n        for (let i = 0, count = entries.length; i < count; i++) {\n            const [key, index] = entries[i];\n            def[key] = { Type: Null, index };\n        }\n        isBasic = true;\n        isIndexed = true;\n    }\n    return {\n        def,\n        isBasic,\n        isIndexed\n    };\n}\nfunction getEntryType(def, checkIdx) {\n    const values = Object.values(def);\n    for (let i = 0, count = values.length; i < count; i++) {\n        const { Type, index } = values[i];\n        if (index === checkIdx) {\n            return Type;\n        }\n    }\n    throw new Error(`Unable to create Enum via index ${checkIdx}, in ${Object.keys(def).join(', ')}`);\n}\nfunction createFromU8a(registry, def, index, value) {\n    const Type = getEntryType(def, index);\n    return {\n        index,\n        value: new Type(registry, value)\n    };\n}\nfunction createFromValue(registry, def, index = 0, value) {\n    const Type = getEntryType(def, index);\n    return {\n        index,\n        value: value instanceof Type\n            ? value\n            : new Type(registry, value)\n    };\n}\nfunction decodeFromJSON(registry, def, key, value) {\n    // JSON comes in the form of { \"<type (camelCase)>\": \"<value for type>\" }, here we\n    // additionally force to lower to ensure forward compat\n    const keys = Object.keys(def).map((k) => k.toLowerCase());\n    const keyLower = key.toLowerCase();\n    const index = keys.indexOf(keyLower);\n    if (index === -1) {\n        throw new Error(`Cannot map Enum JSON, unable to find '${key}' in ${keys.join(', ')}`);\n    }\n    try {\n        return createFromValue(registry, def, Object.values(def)[index].index, value);\n    }\n    catch (error) {\n        throw new Error(`Enum(${key}):: ${error.message}`);\n    }\n}\nfunction decodeEnum(registry, def, value, index) {\n    // NOTE We check the index path first, before looking at values - this allows treating\n    // the optional indexes before anything else, more-specific > less-specific\n    if (isNumber(index)) {\n        return createFromValue(registry, def, index, value);\n    }\n    else if (isU8a(value) || isHex(value)) {\n        const u8a = u8aToU8a(value);\n        // nested, we don't want to match isObject below\n        if (u8a.length) {\n            return createFromU8a(registry, def, u8a[0], u8a.subarray(1));\n        }\n    }\n    else if (value instanceof Enum) {\n        return createFromValue(registry, def, value.index, value.value);\n    }\n    else if (isNumber(value)) {\n        return createFromValue(registry, def, value);\n    }\n    else if (isString(value)) {\n        return decodeFromJSON(registry, def, value.toString());\n    }\n    else if (isObject(value)) {\n        const key = Object.keys(value)[0];\n        return decodeFromJSON(registry, def, key, value[key]);\n    }\n    // Worst-case scenario, return the first with default\n    return createFromValue(registry, def, Object.values(def)[0].index);\n}\n/**\n * @name Enum\n * @description\n * This implements an enum, that based on the value wraps a different type. It is effectively\n * an extension to enum where the value type is determined by the actual index.\n */\nexport class Enum {\n    constructor(registry, Types, value, index, { definition, setDefinition = identity } = {}) {\n        const { def, isBasic, isIndexed } = definition || setDefinition(extractDef(registry, Types));\n        // shortcut isU8a as used in SCALE decoding\n        const decoded = isU8a(value) && value.length && !isNumber(index)\n            ? createFromU8a(registry, def, value[0], value.subarray(1))\n            : decodeEnum(registry, def, value, index);\n        this.registry = registry;\n        this.__internal__def = def;\n        this.__internal__isBasic = isBasic;\n        this.__internal__isIndexed = isIndexed;\n        this.__internal__indexes = Object.values(def).map(({ index }) => index);\n        this.__internal__entryIndex = this.__internal__indexes.indexOf(decoded.index);\n        this.__internal__raw = decoded.value;\n        if (this.__internal__raw.initialU8aLength) {\n            this.initialU8aLength = 1 + this.__internal__raw.initialU8aLength;\n        }\n    }\n    static with(Types) {\n        var _a;\n        let definition;\n        // eslint-disable-next-line no-return-assign\n        const setDefinition = (d) => definition = d;\n        return _a = class extends Enum {\n                constructor(registry, value, index) {\n                    super(registry, Types, value, index, { definition, setDefinition });\n                }\n            },\n            (() => {\n                const keys = Array.isArray(Types)\n                    ? Types\n                    : Object.keys(Types);\n                const count = keys.length;\n                const asKeys = new Array(count);\n                const isKeys = new Array(count);\n                for (let i = 0; i < count; i++) {\n                    const name = stringPascalCase(keys[i]);\n                    asKeys[i] = `as${name}`;\n                    isKeys[i] = `is${name}`;\n                }\n                objectProperties(_a.prototype, isKeys, (_, i, self) => self.type === keys[i]);\n                objectProperties(_a.prototype, asKeys, (k, i, self) => {\n                    if (self.type !== keys[i]) {\n                        throw new Error(`Cannot convert '${self.type}' via ${k}`);\n                    }\n                    return self.value;\n                });\n            })(),\n            _a;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return 1 + this.__internal__raw.encodedLength;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description The index of the enum value\n     */\n    get index() {\n        return this.__internal__indexes[this.__internal__entryIndex];\n    }\n    /**\n     * @description The value of the enum\n     */\n    get inner() {\n        return this.__internal__raw;\n    }\n    /**\n     * @description true if this is a basic enum (no values)\n     */\n    get isBasic() {\n        return this.__internal__isBasic;\n    }\n    /**\n     * @description Checks if the value is an empty value\n     */\n    get isEmpty() {\n        return this.__internal__raw.isEmpty;\n    }\n    /**\n     * @description Checks if the Enum points to a [[Null]] type\n     */\n    get isNone() {\n        return this.__internal__raw instanceof Null;\n    }\n    /**\n     * @description The available keys for this enum\n     */\n    get defIndexes() {\n        return this.__internal__indexes;\n    }\n    /**\n     * @description The available keys for this enum\n     */\n    get defKeys() {\n        return Object.keys(this.__internal__def);\n    }\n    /**\n     * @description The name of the type this enum value represents\n     */\n    get type() {\n        return this.defKeys[this.__internal__entryIndex];\n    }\n    /**\n     * @description The value of the enum\n     */\n    get value() {\n        return this.__internal__raw;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        // cater for the case where we only pass the enum index\n        if (isU8a(other)) {\n            return !this.toU8a().some((entry, index) => entry !== other[index]);\n        }\n        else if (isNumber(other)) {\n            return this.toNumber() === other;\n        }\n        else if (this.__internal__isBasic && isString(other)) {\n            return this.type === other;\n        }\n        else if (isHex(other)) {\n            return this.toHex() === other;\n        }\n        else if (other instanceof Enum) {\n            return this.index === other.index && this.value.eq(other.value);\n        }\n        else if (isObject(other)) {\n            return this.value.eq(other[this.type]);\n        }\n        // compare the actual wrapper value\n        return this.value.eq(other);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        if (this.__internal__isBasic) {\n            return { outer: [new Uint8Array([this.index])] };\n        }\n        const { inner, outer = [] } = this.__internal__raw.inspect();\n        return {\n            inner,\n            outer: [new Uint8Array([this.index]), ...outer]\n        };\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        return u8aToHex(this.toU8a());\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        return this.__internal__isBasic || this.isNone\n            ? this.type\n            : { [this.type]: this.__internal__raw.toHuman(isExtended) };\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.__internal__isBasic\n            ? this.type\n            : { [stringCamelCase(this.type)]: this.__internal__raw.toJSON() };\n    }\n    /**\n     * @description Returns the number representation for the value\n     */\n    toNumber() {\n        return this.index;\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.__internal__isBasic\n            ? this.type\n            : { [stringCamelCase(this.type)]: this.__internal__raw.toPrimitive() };\n    }\n    /**\n     * @description Returns a raw struct representation of the enum types\n     */\n    _toRawStruct() {\n        if (this.__internal__isBasic) {\n            return this.__internal__isIndexed\n                ? this.defKeys.reduce((out, key, index) => {\n                    out[key] = this.__internal__indexes[index];\n                    return out;\n                }, {})\n                : this.defKeys;\n        }\n        const entries = Object.entries(this.__internal__def);\n        return typesToMap(this.registry, entries.reduce((out, [key, { Type }], i) => {\n            out[0][i] = Type;\n            out[1][i] = key;\n            return out;\n        }, [new Array(entries.length), new Array(entries.length)]));\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return stringify({ _enum: this._toRawStruct() });\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return this.isNone\n            ? this.type\n            : stringify(this.toJSON());\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        return isBare\n            ? this.__internal__raw.toU8a(isBare)\n            : u8aConcatStrict([\n                new Uint8Array([this.index]),\n                this.__internal__raw.toU8a(isBare)\n            ]);\n    }\n}\n","/**\n * @name isBoolean\n * @summary Tests for a boolean value.\n * @description\n * Checks to see if the input value is a JavaScript boolean.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isBoolean } from '@polkadot/util';\n *\n * isBoolean(false); // => true\n * ```\n */\nexport function isBoolean(value) {\n    return typeof value === 'boolean';\n}\n","import { u8aToHex } from '@polkadot/util';\n/** @internal */\nfunction formatFailure(registry, fn, _result, { message }, u8a, i, count, Type, key) {\n    let type = '';\n    try {\n        type = `: ${new Type(registry).toRawType()}`;\n    }\n    catch {\n        // ignore\n    }\n    // This is extra debugging info (we most-probably want this in in some way, shape or form,\n    // but at this point not quite sure how to include and format it (it can be quite massive)\n    // console.error(JSON.stringify(result, null, 2));\n    return `${fn}: failed at ${u8aToHex(u8a.subarray(0, 16))}…${key ? ` on ${key}` : ''} (index ${i + 1}/${count})${type}:: ${message}`;\n}\n/**\n * @internal\n *\n * Given an u8a, and an array of Type constructors, decode the u8a against the\n * types, and return an array of decoded values.\n *\n * @param u8a - The u8a to decode.\n * @param result - The result array (will be returned with values pushed)\n * @param types - The array of CodecClass to decode the U8a against.\n */\nexport function decodeU8a(registry, result, u8a, [Types, keys]) {\n    const count = result.length;\n    let offset = 0;\n    let i = 0;\n    try {\n        while (i < count) {\n            const value = new Types[i](registry, u8a.subarray(offset));\n            offset += value.initialU8aLength || value.encodedLength;\n            result[i] = value;\n            i++;\n        }\n    }\n    catch (error) {\n        throw new Error(formatFailure(registry, 'decodeU8a', result, error, u8a.subarray(offset), i, count, Types[i], keys[i]));\n    }\n    return [result, offset];\n}\n/**\n * @internal\n *\n * Split from decodeU8a since this is specialized to zip returns ... while we duplicate, this\n * is all on the hot-path, so it is not great, however there is (some) method behind the madness\n */\nexport function decodeU8aStruct(registry, result, u8a, [Types, keys]) {\n    const count = result.length;\n    let offset = 0;\n    let i = 0;\n    try {\n        while (i < count) {\n            const value = new Types[i](registry, u8a.subarray(offset));\n            offset += value.initialU8aLength || value.encodedLength;\n            result[i] = [keys[i], value];\n            i++;\n        }\n    }\n    catch (error) {\n        throw new Error(formatFailure(registry, 'decodeU8aStruct', result, error, u8a.subarray(offset), i, count, Types[i], keys[i]));\n    }\n    return [result, offset];\n}\n/**\n * @internal\n *\n * Split from decodeU8a since this is specialized to 1 instance ... while we duplicate, this\n * is all on the hot-path, so it is not great, however there is (some) method behind the madness\n */\nexport function decodeU8aVec(registry, result, u8a, startAt, Type) {\n    const count = result.length;\n    let offset = startAt;\n    let i = 0;\n    try {\n        while (i < count) {\n            const value = new Type(registry, u8a.subarray(offset));\n            offset += value.initialU8aLength || value.encodedLength;\n            result[i] = value;\n            i++;\n        }\n    }\n    catch (error) {\n        throw new Error(formatFailure(registry, 'decodeU8aVec', result, error, u8a.subarray(offset), i, count, Type));\n    }\n    return [offset, offset - startAt];\n}\n","import { isBoolean, isHex, isObject, isU8a, isUndefined, objectProperties, stringCamelCase, stringify, u8aConcatStrict, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { compareMap, decodeU8aStruct, mapToTypeMap, typesToMap } from '../utils/index.js';\nfunction noopSetDefinition(d) {\n    return d;\n}\n/** @internal */\nfunction decodeStructFromObject(registry, [Types, keys], value, jsonMap) {\n    let jsonObj;\n    const typeofArray = Array.isArray(value);\n    const typeofMap = value instanceof Map;\n    const count = keys.length;\n    if (!typeofArray && !typeofMap && !isObject(value)) {\n        throw new Error(`Struct: Cannot decode value ${stringify(value)} (typeof ${typeof value}), expected an input object, map or array`);\n    }\n    else if (typeofArray && value.length !== count) {\n        throw new Error(`Struct: Unable to map ${stringify(value)} array to object with known keys ${keys.join(', ')}`);\n    }\n    const raw = new Array(count);\n    for (let i = 0; i < count; i++) {\n        const key = keys[i];\n        const jsonKey = jsonMap.get(key) || key;\n        const Type = Types[i];\n        let assign;\n        try {\n            if (typeofArray) {\n                assign = value[i];\n            }\n            else if (typeofMap) {\n                assign = jsonKey && value.get(jsonKey);\n            }\n            else {\n                assign = jsonKey && value[jsonKey];\n                if (isUndefined(assign)) {\n                    if (isUndefined(jsonObj)) {\n                        const entries = Object.entries(value);\n                        jsonObj = {};\n                        for (let e = 0, ecount = entries.length; e < ecount; e++) {\n                            jsonObj[stringCamelCase(entries[e][0])] = entries[e][1];\n                        }\n                    }\n                    assign = jsonKey && jsonObj[jsonKey];\n                }\n            }\n            raw[i] = [\n                key,\n                assign instanceof Type\n                    ? assign\n                    : new Type(registry, assign)\n            ];\n        }\n        catch (error) {\n            let type = Type.name;\n            try {\n                type = new Type(registry).toRawType();\n            }\n            catch {\n                // ignore\n            }\n            throw new Error(`Struct: failed on ${jsonKey}: ${type}:: ${error.message}`);\n        }\n    }\n    return [raw, 0];\n}\n/**\n * @name Struct\n * @description\n * A Struct defines an Object with key-value pairs - where the values are Codec values. It removes\n * a lot of repetition from the actual coding, define a structure type, pass it the key/Codec\n * values in the constructor and it manages the decoding. It is important that the constructor\n * values matches 100% to the order in th Rust code, i.e. don't go crazy and make it alphabetical,\n * it needs to decoded in the specific defined order.\n * @noInheritDoc\n */\nexport class Struct extends Map {\n    constructor(registry, Types, value, jsonMap = new Map(), { definition, setDefinition = noopSetDefinition } = {}) {\n        const typeMap = definition || setDefinition(mapToTypeMap(registry, Types));\n        const [decoded, decodedLength] = isU8a(value) || isHex(value)\n            ? decodeU8aStruct(registry, new Array(typeMap[0].length), u8aToU8a(value), typeMap)\n            : value instanceof Struct\n                ? [value, 0]\n                : decodeStructFromObject(registry, typeMap, value || {}, jsonMap);\n        super(decoded);\n        this.initialU8aLength = decodedLength;\n        this.registry = registry;\n        this.__internal__jsonMap = jsonMap;\n        this.__internal__Types = typeMap;\n    }\n    static with(Types, jsonMap) {\n        var _a;\n        let definition;\n        // eslint-disable-next-line no-return-assign\n        const setDefinition = (d) => definition = d;\n        return _a = class extends Struct {\n                constructor(registry, value) {\n                    super(registry, Types, value, jsonMap, { definition, setDefinition });\n                }\n            },\n            (() => {\n                const keys = Object.keys(Types);\n                objectProperties(_a.prototype, keys, (k, _, self) => self.get(k));\n            })(),\n            _a;\n    }\n    /**\n     * @description The available keys for this struct\n     */\n    get defKeys() {\n        return this.__internal__Types[1];\n    }\n    /**\n     * @description Checks if the value is an empty value\n     */\n    get isEmpty() {\n        for (const v of this.values()) {\n            if (!v.isEmpty) {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        let total = 0;\n        for (const v of this.values()) {\n            total += v.encodedLength;\n        }\n        return total;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Returns the Type description of the structure\n     */\n    get Type() {\n        const result = {};\n        const [Types, keys] = this.__internal__Types;\n        for (let i = 0, count = keys.length; i < count; i++) {\n            result[keys[i]] = new Types[i](this.registry).toRawType();\n        }\n        return result;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return compareMap(this, other);\n    }\n    /**\n     * @description Returns a specific names entry in the structure\n     * @param key The name of the entry to retrieve\n     */\n    get(key) {\n        return super.get(key);\n    }\n    /**\n     * @description Returns the values of a member at a specific index (Rather use get(name) for performance)\n     */\n    getAtIndex(index) {\n        return this.toArray()[index];\n    }\n    /**\n     * @description Returns the a types value by name\n     */\n    getT(key) {\n        return super.get(key);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect(isBare) {\n        const inner = [];\n        for (const [k, v] of this.entries()) {\n            inner.push({\n                ...v.inspect(!isBare || isBoolean(isBare)\n                    ? isBare\n                    : isBare[k]),\n                name: stringCamelCase(k)\n            });\n        }\n        return {\n            inner\n        };\n    }\n    /**\n     * @description Converts the Object to an standard JavaScript Array\n     */\n    toArray() {\n        return [...this.values()];\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        return u8aToHex(this.toU8a());\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        const json = {};\n        for (const [k, v] of this.entries()) {\n            json[k] = v.toHuman(isExtended);\n        }\n        return json;\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        const json = {};\n        for (const [k, v] of this.entries()) {\n            // Here we pull out the entry against the JSON mapping (if supplied)\n            // since this representation goes over RPC and needs to be correct\n            json[(this.__internal__jsonMap.get(k) || k)] = v.toJSON();\n        }\n        return json;\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        const json = {};\n        for (const [k, v] of this.entries()) {\n            json[k] = v.toPrimitive();\n        }\n        return json;\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return stringify(typesToMap(this.registry, this.__internal__Types));\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return stringify(this.toJSON());\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        const encoded = [];\n        for (const [k, v] of this.entries()) {\n            encoded.push(v.toU8a(!isBare || isBoolean(isBare)\n                ? isBare\n                : isBare[k]));\n        }\n        return u8aConcatStrict(encoded);\n    }\n}\n","import { isOnObject } from './helpers.js';\nconst checkCodec = /*#__PURE__*/ isOnObject('toHex', 'toHuman', 'toU8a');\nconst checkRegistry = /*#__PURE__*/ isOnObject('get');\nexport function isCodec(value) {\n    return checkCodec(value) && checkRegistry(value.registry);\n}\n","import { bnToBn, isBigInt, isBn, isCodec, isNumber, stringify } from '@polkadot/util';\n/** @internal **/\nfunction isArrayLike(arg) {\n    return arg instanceof Uint8Array || Array.isArray(arg);\n}\n/** @internal **/\nfunction isEnum(arg) {\n    return isCodec(arg) && isNumber(arg.index) && isCodec(arg.value);\n}\n/** @internal */\nfunction isNumberLike(arg) {\n    return isNumber(arg) || isBn(arg) || isBigInt(arg);\n}\n/** @internal */\nfunction sortArray(a, b) {\n    // Vec, Tuple, Bytes etc.\n    let sortRes = 0;\n    const minLen = Math.min(a.length, b.length);\n    for (let i = 0; i < minLen; ++i) {\n        sortRes = sortAsc(a[i], b[i]);\n        if (sortRes !== 0) {\n            return sortRes;\n        }\n    }\n    return a.length - b.length;\n}\n/**\n* Sort keys/values of BTreeSet/BTreeMap in ascending order for encoding compatibility with Rust's BTreeSet/BTreeMap\n* (https://doc.rust-lang.org/stable/std/collections/struct.BTreeSet.html)\n* (https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html)\n*/\nexport function sortAsc(a, b) {\n    if (isNumberLike(a) && isNumberLike(b)) {\n        return bnToBn(a).cmp(bnToBn(b));\n    }\n    else if (a instanceof Map && b instanceof Map) {\n        return sortAsc(Array.from(a.values()), Array.from(b.values()));\n    }\n    else if (isEnum(a) && isEnum(b)) {\n        return sortAsc(a.index, b.index) || sortAsc(a.value, b.value);\n    }\n    else if (isArrayLike(a) && isArrayLike(b)) {\n        return sortArray(a, b);\n    }\n    else if (isCodec(a) && isCodec(b)) {\n        // Text, Bool etc.\n        return sortAsc(a.toU8a(true), b.toU8a(true));\n    }\n    throw new Error(`Attempting to sort unrecognized values: ${stringify(a)} (typeof ${typeof a}) <-> ${stringify(b)} (typeof ${typeof b})`);\n}\nexport function sortSet(set) {\n    return new Set(Array.from(set).sort(sortAsc));\n}\nexport function sortMap(map) {\n    return new Map(Array.from(map.entries()).sort(([keyA], [keyB]) => sortAsc(keyA, keyB)));\n}\n","import { compactFromU8aLim, compactToU8a, isHex, isObject, isU8a, logger, stringify, u8aConcatStrict, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { AbstractArray } from '../abstract/Array.js';\nimport { Enum } from '../base/Enum.js';\nimport { Raw } from '../native/Raw.js';\nimport { Struct } from '../native/Struct.js';\nimport { compareMap, decodeU8a, sortMap, typeToConstructor } from '../utils/index.js';\nconst l = logger('Map');\n/** @internal */\nfunction decodeMapFromU8a(registry, KeyClass, ValClass, u8a) {\n    const output = new Map();\n    const [offset, count] = compactFromU8aLim(u8a);\n    const types = [];\n    for (let i = 0; i < count; i++) {\n        types.push(KeyClass, ValClass);\n    }\n    const [values, decodedLength] = decodeU8a(registry, new Array(types.length), u8a.subarray(offset), [types, []]);\n    for (let i = 0, count = values.length; i < count; i += 2) {\n        output.set(values[i], values[i + 1]);\n    }\n    return [KeyClass, ValClass, output, offset + decodedLength];\n}\n/** @internal */\nfunction decodeMapFromMap(registry, KeyClass, ValClass, value) {\n    const output = new Map();\n    for (const [key, val] of value.entries()) {\n        const isComplex = KeyClass.prototype instanceof AbstractArray ||\n            KeyClass.prototype instanceof Struct ||\n            KeyClass.prototype instanceof Enum;\n        try {\n            output.set(key instanceof KeyClass\n                ? key\n                : new KeyClass(registry, isComplex && typeof key === 'string' ? JSON.parse(key) : key), val instanceof ValClass\n                ? val\n                : new ValClass(registry, val));\n        }\n        catch (error) {\n            l.error('Failed to decode key or value:', error.message);\n            throw error;\n        }\n    }\n    return [KeyClass, ValClass, output, 0];\n}\n/**\n * Decode input to pass into constructor.\n *\n * @param KeyClass - Type of the map key\n * @param ValClass - Type of the map value\n * @param value - Value to decode, one of:\n * - null\n * - undefined\n * - hex\n * - Uint8Array\n * - Map<any, any>, where both key and value types are either\n *   constructors or decodeable values for their types.\n * @param jsonMap\n * @internal\n */\nfunction decodeMap(registry, keyType, valType, value) {\n    const KeyClass = typeToConstructor(registry, keyType);\n    const ValClass = typeToConstructor(registry, valType);\n    if (!value) {\n        return [KeyClass, ValClass, new Map(), 0];\n    }\n    else if (isU8a(value) || isHex(value)) {\n        return decodeMapFromU8a(registry, KeyClass, ValClass, u8aToU8a(value));\n    }\n    else if (value instanceof Map) {\n        return decodeMapFromMap(registry, KeyClass, ValClass, value);\n    }\n    else if (isObject(value)) {\n        return decodeMapFromMap(registry, KeyClass, ValClass, new Map(Object.entries(value)));\n    }\n    throw new Error('Map: cannot decode type');\n}\nexport class CodecMap extends Map {\n    constructor(registry, keyType, valType, rawValue, type = 'HashMap') {\n        const [KeyClass, ValClass, decoded, decodedLength] = decodeMap(registry, keyType, valType, rawValue);\n        super(type === 'BTreeMap' ? sortMap(decoded) : decoded);\n        this.registry = registry;\n        this.initialU8aLength = decodedLength;\n        this.__internal__KeyClass = KeyClass;\n        this.__internal__ValClass = ValClass;\n        this.__internal__type = type;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        let len = compactToU8a(this.size).length;\n        for (const [k, v] of this.entries()) {\n            len += k.encodedLength + v.encodedLength;\n        }\n        return len;\n    }\n    /**\n     * @description Returns a hash of the value\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Checks if the value is an empty value\n     */\n    get isEmpty() {\n        return this.size === 0;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return compareMap(this, other);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        const inner = [];\n        for (const [k, v] of this.entries()) {\n            inner.push(k.inspect());\n            inner.push(v.inspect());\n        }\n        return {\n            inner,\n            outer: [compactToU8a(this.size)]\n        };\n    }\n    /**\n     * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation\n     */\n    toHex() {\n        return u8aToHex(this.toU8a());\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        const json = {};\n        for (const [k, v] of this.entries()) {\n            json[k instanceof Raw && k.isAscii\n                ? k.toUtf8()\n                : k.toString()] = v.toHuman(isExtended);\n        }\n        return json;\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        const json = {};\n        for (const [k, v] of this.entries()) {\n            json[k.toString()] = v.toJSON();\n        }\n        return json;\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        const json = {};\n        for (const [k, v] of this.entries()) {\n            json[k instanceof Raw && k.isAscii\n                ? k.toUtf8()\n                : k.toString()] = v.toPrimitive();\n        }\n        return json;\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return `${this.__internal__type}<${this.registry.getClassName(this.__internal__KeyClass) || new this.__internal__KeyClass(this.registry).toRawType()},${this.registry.getClassName(this.__internal__ValClass) || new this.__internal__ValClass(this.registry).toRawType()}>`;\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return stringify(this.toJSON());\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        const encoded = [];\n        if (!isBare) {\n            encoded.push(compactToU8a(this.size));\n        }\n        for (const [k, v] of this.entries()) {\n            encoded.push(k.toU8a(isBare), v.toU8a(isBare));\n        }\n        return u8aConcatStrict(encoded);\n    }\n}\n","import { CodecMap } from './Map.js';\nexport class BTreeMap extends CodecMap {\n    static with(keyType, valType) {\n        return class extends BTreeMap {\n            constructor(registry, value) {\n                super(registry, keyType, valType, value, 'BTreeMap');\n            }\n        };\n    }\n}\n","import { isObject } from '@polkadot/util';\nfunction compareSetArray(a, b) {\n    // equal number of entries and each entry in the array should match\n    return (a.size === b.length) && !b.some((e) => !a.has(e));\n}\nexport function compareSet(a, b) {\n    if (Array.isArray(b)) {\n        return compareSetArray(a, b);\n    }\n    else if (b instanceof Set) {\n        return compareSetArray(a, [...b.values()]);\n    }\n    else if (isObject(b)) {\n        return compareSetArray(a, Object.values(b));\n    }\n    return false;\n}\n","import { compactFromU8aLim, compactToU8a, isHex, isU8a, logger, stringify, u8aConcatStrict, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { compareSet, decodeU8aVec, sortSet, typeToConstructor } from '../utils/index.js';\nconst l = logger('BTreeSet');\n/** @internal */\nfunction decodeSetFromU8a(registry, ValClass, u8a) {\n    const output = new Set();\n    const [offset, count] = compactFromU8aLim(u8a);\n    const result = new Array(count);\n    const [decodedLength] = decodeU8aVec(registry, result, u8a, offset, ValClass);\n    for (let i = 0; i < count; i++) {\n        output.add(result[i]);\n    }\n    return [ValClass, output, decodedLength];\n}\n/** @internal */\nfunction decodeSetFromSet(registry, ValClass, value) {\n    const output = new Set();\n    value.forEach((val) => {\n        try {\n            output.add((val instanceof ValClass) ? val : new ValClass(registry, val));\n        }\n        catch (error) {\n            l.error('Failed to decode key or value:', error.message);\n            throw error;\n        }\n    });\n    return [ValClass, output, 0];\n}\n/**\n * Decode input to pass into constructor.\n *\n * @param ValClass - Type of the map value\n * @param value - Value to decode, one of:\n * - null\n * - undefined\n * - hex\n * - Uint8Array\n * - Set<any>, where both key and value types are either\n *   constructors or decodeable values for their types.\n * @param jsonSet\n * @internal\n */\nfunction decodeSet(registry, valType, value) {\n    const ValClass = typeToConstructor(registry, valType);\n    if (!value) {\n        return [ValClass, new Set(), 0];\n    }\n    else if (isU8a(value) || isHex(value)) {\n        return decodeSetFromU8a(registry, ValClass, u8aToU8a(value));\n    }\n    else if (Array.isArray(value) || value instanceof Set) {\n        return decodeSetFromSet(registry, ValClass, value);\n    }\n    throw new Error('BTreeSet: cannot decode type');\n}\nexport class BTreeSet extends Set {\n    constructor(registry, valType, rawValue) {\n        const [ValClass, values, decodedLength] = decodeSet(registry, valType, rawValue);\n        super(sortSet(values));\n        this.registry = registry;\n        this.initialU8aLength = decodedLength;\n        this.__internal__ValClass = ValClass;\n    }\n    static with(valType) {\n        return class extends BTreeSet {\n            constructor(registry, value) {\n                super(registry, valType, value);\n            }\n        };\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        let len = compactToU8a(this.size).length;\n        for (const v of this.values()) {\n            len += v.encodedLength;\n        }\n        return len;\n    }\n    /**\n     * @description Returns a hash of the value\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Checks if the value is an empty value\n     */\n    get isEmpty() {\n        return this.size === 0;\n    }\n    /**\n     * @description The actual set values as a string[]\n     */\n    get strings() {\n        return [...super.values()].map((v) => v.toString());\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return compareSet(this, other);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        const inner = [];\n        for (const v of this.values()) {\n            inner.push(v.inspect());\n        }\n        return {\n            inner,\n            outer: [compactToU8a(this.size)]\n        };\n    }\n    /**\n     * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation\n     */\n    toHex() {\n        return u8aToHex(this.toU8a());\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        const json = [];\n        for (const v of this.values()) {\n            json.push(v.toHuman(isExtended));\n        }\n        return json;\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        const json = [];\n        for (const v of this.values()) {\n            json.push(v.toJSON());\n        }\n        return json;\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return `BTreeSet<${this.registry.getClassName(this.__internal__ValClass) || new this.__internal__ValClass(this.registry).toRawType()}>`;\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        const json = [];\n        for (const v of this.values()) {\n            json.push(v.toPrimitive());\n        }\n        return json;\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return stringify(this.toJSON());\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        const encoded = [];\n        if (!isBare) {\n            encoded.push(compactToU8a(this.size));\n        }\n        for (const v of this.values()) {\n            encoded.push(v.toU8a(isBare));\n        }\n        return u8aConcatStrict(encoded);\n    }\n}\n","import { compactFromU8a, compactFromU8aLim, compactToU8a, identity, isU8a } from '@polkadot/util';\nimport { typeToConstructor } from '../utils/index.js';\nfunction decodeCompact(registry, Type, value) {\n    if (isU8a(value)) {\n        const [decodedLength, bn] = (value[0] & 0b11) < 0b11\n            ? compactFromU8aLim(value)\n            : compactFromU8a(value);\n        return [new Type(registry, bn), decodedLength];\n    }\n    else if (value instanceof Compact) {\n        const raw = value.unwrap();\n        return raw instanceof Type\n            ? [raw, 0]\n            : [new Type(registry, raw), 0];\n    }\n    else if (value instanceof Type) {\n        return [value, 0];\n    }\n    return [new Type(registry, value), 0];\n}\n/**\n * @name Compact\n * @description\n * A compact length-encoding codec wrapper. It performs the same function as Length, however\n * differs in that it uses a variable number of bytes to do the actual encoding. This is mostly\n * used by other types to add length-prefixed encoding, or in the case of wrapped types, taking\n * a number and making the compact representation thereof\n */\nexport class Compact {\n    constructor(registry, Type, value = 0, { definition, setDefinition = identity } = {}) {\n        this.registry = registry;\n        this.__internal__Type = definition || setDefinition(typeToConstructor(registry, Type));\n        const [raw, decodedLength] = decodeCompact(registry, this.__internal__Type, value);\n        this.initialU8aLength = decodedLength;\n        this.__internal__raw = raw;\n    }\n    static with(Type) {\n        let definition;\n        // eslint-disable-next-line no-return-assign\n        const setDefinition = (d) => (definition = d);\n        return class extends Compact {\n            constructor(registry, value) {\n                super(registry, Type, value, { definition, setDefinition });\n            }\n        };\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return this.toU8a().length;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Checks if the value is an empty value\n     */\n    get isEmpty() {\n        return this.__internal__raw.isEmpty;\n    }\n    /**\n     * @description Returns the number of bits in the value\n     */\n    bitLength() {\n        return this.__internal__raw.bitLength();\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return this.__internal__raw.eq(other instanceof Compact\n            ? other.__internal__raw\n            : other);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {\n            outer: [this.toU8a()]\n        };\n    }\n    /**\n     * @description Returns a BigInt representation of the number\n     */\n    toBigInt() {\n        return this.__internal__raw.toBigInt();\n    }\n    /**\n     * @description Returns the BN representation of the number\n     */\n    toBn() {\n        return this.__internal__raw.toBn();\n    }\n    /**\n     * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation\n     */\n    toHex(isLe) {\n        return this.__internal__raw.toHex(isLe);\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        return this.__internal__raw.toHuman(isExtended);\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.__internal__raw.toJSON();\n    }\n    /**\n     * @description Returns the number representation for the value\n     */\n    toNumber() {\n        return this.__internal__raw.toNumber();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.__internal__raw.toPrimitive();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return `Compact<${this.registry.getClassName(this.__internal__Type) || this.__internal__raw.toRawType()}>`;\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return this.__internal__raw.toString();\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     */\n    toU8a(_isBare) {\n        return compactToU8a(this.__internal__raw.toBn());\n    }\n    /**\n     * @description Returns the embedded [[UInt]] or [[Moment]] value\n     */\n    unwrap() {\n        return this.__internal__raw;\n    }\n}\n","import { CodecMap } from './Map.js';\nexport class HashMap extends CodecMap {\n    static with(keyType, valType) {\n        return class extends HashMap {\n            constructor(registry, value) {\n                super(registry, keyType, valType, value);\n            }\n        };\n    }\n}\n","const NUMBER_REGEX = new RegExp('(\\\\d+?)(?=(\\\\d{3})+(?!\\\\d)|$)', 'g');\n/**\n * @name formatDecimal\n * @description Formats a number into string format with thousand separators\n */\nexport function formatDecimal(value, separator = ',') {\n    // We can do this by adjusting the regx, however for the sake of clarity\n    // we rather strip and re-add the negative sign in the output\n    const isNegative = value[0].startsWith('-');\n    const matched = isNegative\n        ? value.substring(1).match(NUMBER_REGEX)\n        : value.match(NUMBER_REGEX);\n    return matched\n        ? `${isNegative ? '-' : ''}${matched.join(separator)}`\n        : value;\n}\n","/**\n * Get the decimal and thousand separator of a locale\n * @param locale\n * @returns {decimal: string, thousand: string}\n */\nexport function getSeparator(locale) {\n    return {\n        decimal: (0.1).toLocaleString(locale).substring(1, 2),\n        thousand: (1000).toLocaleString(locale).substring(1, 2)\n    };\n}\n","/** @internal */\nexport const SI_MID = 8;\n/** @internal */\nexport const SI = [\n    { power: -24, text: 'yocto', value: 'y' },\n    { power: -21, text: 'zepto', value: 'z' },\n    { power: -18, text: 'atto', value: 'a' },\n    { power: -15, text: 'femto', value: 'f' },\n    { power: -12, text: 'pico', value: 'p' },\n    { power: -9, text: 'nano', value: 'n' },\n    { power: -6, text: 'micro', value: 'µ' },\n    { power: -3, text: 'milli', value: 'm' },\n    { power: 0, text: 'Unit', value: '-' },\n    { power: 3, text: 'Kilo', value: 'k' },\n    { power: 6, text: 'Mill', value: 'M' },\n    { power: 9, text: 'Bill', value: 'B' },\n    { power: 12, text: 'Tril', value: 'T' },\n    { power: 15, text: 'Peta', value: 'P' },\n    { power: 18, text: 'Exa', value: 'E' },\n    { power: 21, text: 'Zeta', value: 'Z' },\n    { power: 24, text: 'Yotta', value: 'Y' }\n];\n/** @internal */\nexport function findSi(type) {\n    // use a loop here, better RN support (which doesn't have [].find)\n    for (let i = 0, count = SI.length; i < count; i++) {\n        if (SI[i].value === type) {\n            return SI[i];\n        }\n    }\n    return SI[SI_MID];\n}\n/** @internal */\nexport function calcSi(text, decimals, forceUnit) {\n    if (forceUnit) {\n        return findSi(forceUnit);\n    }\n    const siDefIndex = (SI_MID - 1) + Math.ceil((text.length - decimals) / 3);\n    return SI[siDefIndex] || SI[siDefIndex < 0 ? 0 : SI.length - 1];\n}\n","import { bnToBn } from '../bn/toBn.js';\nimport { isBoolean } from '../is/boolean.js';\nimport { formatDecimal } from './formatDecimal.js';\nimport { getSeparator } from './getSeparator.js';\nimport { calcSi, findSi, SI, SI_MID } from './si.js';\nconst DEFAULT_DECIMALS = 0;\nconst DEFAULT_UNIT = SI[SI_MID].text;\nlet defaultDecimals = DEFAULT_DECIMALS;\nlet defaultUnit = DEFAULT_UNIT;\nfunction _formatBalance(input, { decimals = defaultDecimals, forceUnit, locale = 'en', withAll = false, withSi = true, withSiFull = false, withUnit = true, withZero = true } = {}) {\n    // we only work with string inputs here - convert anything\n    // into the string-only value\n    let text = bnToBn(input).toString();\n    if (text.length === 0 || text === '0') {\n        return '0';\n    }\n    // strip the negative sign so we can work with clean groupings, re-add this in the\n    // end when we return the result (from here on we work with positive numbers)\n    let sign = '';\n    if (text[0].startsWith('-')) {\n        sign = '-';\n        text = text.substring(1);\n    }\n    // We start at midpoint (8) minus 1 - this means that values display as\n    // 123.4567 instead of 0.1234 k (so we always have the most relevant).\n    const si = calcSi(text, decimals, forceUnit);\n    const mid = text.length - (decimals + si.power);\n    const pre = mid <= 0 ? '0' : text.substring(0, mid);\n    // get the post from the midpoint onward and then first add max decimals\n    // before trimming to the correct (calculated) amount of decimals again\n    let post = text\n        .padStart(mid < 0 ? decimals : 1, '0')\n        .substring(mid < 0 ? 0 : mid)\n        .padEnd(withAll ? Math.max(decimals, 4) : 4, '0')\n        .substring(0, withAll ? Math.max(4, decimals + si.power) : 4);\n    // remove all trailing 0's (if required via flag)\n    if (!withZero) {\n        let end = post.length - 1;\n        // This looks inefficient, however it is better to do the checks and\n        // only make one final slice than it is to do it in multiples\n        do {\n            if (post[end] === '0') {\n                end--;\n            }\n        } while (post[end] === '0');\n        post = post.substring(0, end + 1);\n    }\n    // the display unit\n    const unit = isBoolean(withUnit)\n        ? SI[SI_MID].text\n        : withUnit;\n    // format the units for display based on the flags\n    const units = withSi || withSiFull\n        ? si.value === '-'\n            ? withUnit\n                ? ` ${unit}`\n                : ''\n            : ` ${withSiFull ? `${si.text}${withUnit ? ' ' : ''}` : si.value}${withUnit ? unit : ''}`\n        : '';\n    const { decimal, thousand } = getSeparator(locale);\n    return `${sign}${formatDecimal(pre, thousand)}${post && `${decimal}${post}`}${units}`;\n}\nexport const formatBalance = _formatBalance;\nformatBalance.calcSi = (text, decimals = defaultDecimals) => calcSi(text, decimals);\nformatBalance.findSi = findSi;\nformatBalance.getDefaults = () => {\n    return {\n        decimals: defaultDecimals,\n        unit: defaultUnit\n    };\n};\nformatBalance.getOptions = (decimals = defaultDecimals) => {\n    return SI.filter(({ power }) => power < 0\n        ? (decimals + power) >= 0\n        : true);\n};\nformatBalance.setDefaults = ({ decimals, unit }) => {\n    defaultDecimals = (Array.isArray(decimals)\n        ? decimals[0]\n        : decimals) ?? defaultDecimals;\n    defaultUnit = (Array.isArray(unit)\n        ? unit[0]\n        : unit) ?? defaultUnit;\n    SI[SI_MID].text = defaultUnit;\n};\n","import { bnToBn } from '../bn/toBn.js';\nimport { formatDecimal } from './formatDecimal.js';\nimport { getSeparator } from './getSeparator.js';\n/**\n * @name formatNumber\n * @description Formats a number into string format with thousand separators\n */\nexport function formatNumber(value, { locale = 'en' } = {}) {\n    const { thousand } = getSeparator(locale);\n    return formatDecimal(bnToBn(value).toString(), thousand);\n}\n","import { BN, BN_BILLION, BN_HUNDRED, BN_MILLION, BN_QUINTILL, bnToBn, bnToHex, bnToU8a, formatBalance, formatNumber, hexToBn, isBigInt, isBn, isFunction, isHex, isNumber, isObject, isString, isU8a, u8aToBn, u8aToNumber } from '@polkadot/util';\nexport const DEFAULT_UINT_BITS = 64;\nconst MAX_NUMBER_BITS = 52;\nconst MUL_P = new BN(10000);\nconst FORMATTERS = [\n    ['Perquintill', BN_QUINTILL],\n    ['Perbill', BN_BILLION],\n    ['Permill', BN_MILLION],\n    ['Percent', BN_HUNDRED]\n];\nfunction isToBn(value) {\n    return isFunction(value.toBn);\n}\nfunction toPercentage(value, divisor) {\n    return `${(value.mul(MUL_P).div(divisor).toNumber() / 100).toFixed(2)}%`;\n}\n/** @internal */\nfunction decodeAbstractInt(value, isNegative) {\n    if (isNumber(value)) {\n        if (!Number.isInteger(value) || value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER) {\n            throw new Error('Number needs to be an integer <= Number.MAX_SAFE_INTEGER, i.e. 2 ^ 53 - 1');\n        }\n        return value;\n    }\n    else if (isString(value)) {\n        if (isHex(value, -1, true)) {\n            return hexToBn(value, { isLe: false, isNegative }).toString();\n        }\n        if (value.includes('.') || value.includes(',') || value.includes('e')) {\n            throw new Error('String should not contain decimal points or scientific notation');\n        }\n        return value;\n    }\n    else if (isBn(value) || isBigInt(value)) {\n        return value.toString();\n    }\n    else if (isObject(value)) {\n        if (isToBn(value)) {\n            return value.toBn().toString();\n        }\n        // Allow the construction from an object with a single top-level key. This means that\n        // single key objects can be treated equivalently to numbers, assuming they meet the\n        // specific requirements. (This is useful in Weights 1.5 where Objects are compact)\n        const keys = Object.keys(value);\n        if (keys.length !== 1) {\n            throw new Error('Unable to construct number from multi-key object');\n        }\n        return decodeAbstractInt(value[keys[0]], isNegative);\n    }\n    else if (!value) {\n        return 0;\n    }\n    throw new Error(`Unable to create BN from unknown type ${typeof value}`);\n}\n/**\n * @name AbstractInt\n * @ignore\n * @noInheritDoc\n */\nexport class AbstractInt extends BN {\n    constructor(registry, value = 0, bitLength = DEFAULT_UINT_BITS, isSigned = false) {\n        // Construct via a string/number, which will be passed in the BN constructor.\n        // It would be ideal to actually return a BN, but there is an issue:\n        // https://github.com/indutny/bn.js/issues/206\n        super(\n        // shortcut isU8a as used in SCALE decoding\n        isU8a(value)\n            ? bitLength <= 48\n                ? u8aToNumber(value.subarray(0, bitLength / 8), { isNegative: isSigned })\n                : u8aToBn(value.subarray(0, bitLength / 8), { isLe: true, isNegative: isSigned }).toString()\n            : decodeAbstractInt(value, isSigned));\n        this.registry = registry;\n        this.__internal__bitLength = bitLength;\n        this.encodedLength = this.__internal__bitLength / 8;\n        this.initialU8aLength = this.__internal__bitLength / 8;\n        this.isUnsigned = !isSigned;\n        const isNegative = this.isNeg();\n        const maxBits = bitLength - (isSigned && !isNegative ? 1 : 0);\n        if (isNegative && !isSigned) {\n            throw new Error(`${this.toRawType()}: Negative number passed to unsigned type`);\n        }\n        else if (super.bitLength() > maxBits) {\n            throw new Error(`${this.toRawType()}: Input too large. Found input with ${super.bitLength()} bits, expected ${maxBits}`);\n        }\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Checks if the value is a zero value (align elsewhere)\n     */\n    get isEmpty() {\n        return this.isZero();\n    }\n    /**\n     * @description Returns the number of bits in the value\n     */\n    bitLength() {\n        return this.__internal__bitLength;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    eq(other) {\n        // Here we are actually overriding the built-in .eq to take care of both\n        // number and BN inputs (no `.eqn` needed) - numbers will be converted\n        return super.eq(isHex(other)\n            ? hexToBn(other.toString(), { isLe: false, isNegative: !this.isUnsigned })\n            : bnToBn(other));\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {\n            outer: [this.toU8a()]\n        };\n    }\n    /**\n     * @description True if this value is the max of the type\n     */\n    isMax() {\n        const u8a = this.toU8a().filter((b) => b === 0xff);\n        return u8a.length === (this.__internal__bitLength / 8);\n    }\n    /**\n     * @description Returns a BigInt representation of the number\n     */\n    toBigInt() {\n        return BigInt(this.toString());\n    }\n    /**\n     * @description Returns the BN representation of the number. (Compatibility)\n     */\n    toBn() {\n        return this;\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex(isLe = false) {\n        // For display/JSON, this is BE, for compare, use isLe\n        return bnToHex(this, {\n            bitLength: this.bitLength(),\n            isLe,\n            isNegative: !this.isUnsigned\n        });\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(_isExpanded) {\n        const rawType = this.toRawType();\n        if (rawType === 'Balance') {\n            return this.isMax()\n                ? 'everything'\n                // FIXME In the case of multiples we need some way of detecting which instance this belongs\n                // to. as it stands we will always format (incorrectly) against the first token defined\n                : formatBalance(this, { decimals: this.registry.chainDecimals[0], withSi: true, withUnit: this.registry.chainTokens[0] });\n        }\n        const [, divisor] = FORMATTERS.find(([type]) => type === rawType) || [];\n        return divisor\n            ? toPercentage(this, divisor)\n            : formatNumber(this);\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON(onlyHex = false) {\n        // FIXME this return type should by string | number, however BN returns string\n        // Options here are\n        //   - super.bitLength() - the actual used bits, use hex when close to MAX_SAFE_INTEGER\n        //   - this.__internal__bitLength - the max used bits, use hex when larger than native Rust type\n        return onlyHex || (this.__internal__bitLength > 128) || (super.bitLength() > MAX_NUMBER_BITS)\n            ? this.toHex()\n            : this.toNumber();\n    }\n    /**\n     * @description Returns the value in a primitive form, either number when <= 52 bits, or string otherwise\n     */\n    toPrimitive() {\n        return super.bitLength() > MAX_NUMBER_BITS\n            ? this.toString()\n            : this.toNumber();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        // NOTE In the case of balances, which have a special meaning on the UI\n        // and can be interpreted differently, return a specific value for it so\n        // underlying it always matches (no matter which length it actually is)\n        return this instanceof this.registry.createClassUnsafe('Balance')\n            ? 'Balance'\n            : `${this.isUnsigned ? 'u' : 'i'}${this.bitLength()}`;\n    }\n    /**\n     * @description Returns the string representation of the value\n     * @param base The base to use for the conversion\n     */\n    toString(base) {\n        // only included here since we do not inherit docs\n        return super.toString(base);\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     */\n    toU8a(_isBare) {\n        return bnToU8a(this, {\n            bitLength: this.bitLength(),\n            isLe: true,\n            isNegative: !this.isUnsigned\n        });\n    }\n}\n","/**\n * @name u8aToNumber\n * @summary Creates a number from a Uint8Array object.\n */\nexport function u8aToNumber(value, { isLe = true, isNegative = false } = {}) {\n    // slice + reverse is expensive, however SCALE is LE by default so this is the path\n    // we are most interested in (the BE is added for the sake of being comprehensive)\n    if (!isLe) {\n        value = value.slice().reverse();\n    }\n    const count = value.length;\n    // When the value is a i{8, 16, 24, 32, 40, 40} values and the top-most bit\n    // indicates a signed value, we use a two's complement conversion. If one of these\n    // flags are not set, we just do a normal unsigned conversion (the same shortcut\n    // applies in both the u8aTo{BigInt, Bn} conversions as well)\n    if (isNegative && count && (value[count - 1] & 0x80)) {\n        switch (count) {\n            case 0:\n                return 0;\n            case 1:\n                return (((value[0] ^ 255) * -1) - 1);\n            case 2:\n                return ((((value[0] + (value[1] << 8)) ^ 65535) * -1) - 1);\n            case 3:\n                return ((((value[0] + (value[1] << 8) + (value[2] << 16)) ^ 16777215) * -1) - 1);\n            case 4:\n                // for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to\n                // 32-bit, in the case where the top-most bit is set this yields a negative value\n                return ((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 16777216)) ^ 4294967295) * -1) - 1);\n            case 5:\n                return (((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 16777216)) ^ 4294967295) + ((value[4] ^ 0xff) * 4294967296)) * -1) - 1);\n            case 6:\n                return (((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 16777216)) ^ 4294967295) + (((value[4] + (value[5] << 8)) ^ 65535) * 4294967296)) * -1) - 1);\n            default:\n                throw new Error('Value more than 48-bits cannot be reliably converted');\n        }\n    }\n    switch (count) {\n        case 0:\n            return 0;\n        case 1:\n            return value[0];\n        case 2:\n            return value[0] + (value[1] << 8);\n        case 3:\n            return value[0] + (value[1] << 8) + (value[2] << 16);\n        case 4:\n            // for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to\n            // 32-bit, in the case where the top-most bit is set this yields a negative value\n            return value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 16777216);\n        case 5:\n            return value[0] + (value[1] << 8) + (value[2] << 16) + ((value[3] + (value[4] << 8)) * 16777216);\n        case 6:\n            return value[0] + (value[1] << 8) + (value[2] << 16) + ((value[3] + (value[4] << 8) + (value[5] << 16)) * 16777216);\n        default:\n            throw new Error('Value more than 48-bits cannot be reliably converted');\n    }\n}\n","import { u8aToHex } from '../u8a/index.js';\nimport { bnToU8a } from './toU8a.js';\n/**\n * @name bnToHex\n * @summary Creates a hex value from a BN.js bignumber object.\n * @description\n * `null` inputs returns a `0x` result, BN values return the actual value as a `0x` prefixed hex value. Anything that is not a BN object throws an error. With `bitLength` set, it fixes the number to the specified length.\n * @example\n * <BR>\n *\n * ```javascript\n * import BN from 'bn.js';\n * import { bnToHex } from '@polkadot/util';\n *\n * bnToHex(new BN(0x123456)); // => '0x123456'\n * ```\n */\nexport function bnToHex(value, { bitLength = -1, isLe = false, isNegative = false } = {}) {\n    return u8aToHex(bnToU8a(value, { bitLength, isLe, isNegative }));\n}\n","import { AbstractInt } from '../abstract/Int.js';\n/**\n * @name Int\n * @description\n * A generic signed integer codec. For Substrate all numbers are Little Endian encoded,\n * this handles the encoding and decoding of those numbers. Upon construction\n * the bitLength is provided and any additional use keeps the number to this\n * length. This extends `BN`, so all methods available on a normal `BN` object\n * is available here.\n * @noInheritDoc\n */\nexport class Int extends AbstractInt {\n    constructor(registry, value = 0, bitLength) {\n        super(registry, value, bitLength, true);\n    }\n    static with(bitLength, typeName) {\n        return class extends Int {\n            constructor(registry, value) {\n                super(registry, value, bitLength);\n            }\n            toRawType() {\n                return typeName || super.toRawType();\n            }\n        };\n    }\n}\n","import { identity, isCodec, isNull, isU8a, isUndefined, u8aToHex } from '@polkadot/util';\nimport { typeToConstructor } from '../utils/index.js';\nimport { Null } from './Null.js';\nclass None extends Null {\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'None';\n    }\n}\n/** @internal */\nfunction decodeOption(registry, Type, value) {\n    if (value instanceof Type) {\n        // don't re-create, use as it (which also caters for derived types)\n        return value;\n    }\n    else if (value instanceof Option) {\n        if (value.value instanceof Type) {\n            // same instance, return it\n            return value.value;\n        }\n        else if (value.isNone) {\n            // internal is None, we are also none\n            return new None(registry);\n        }\n        // convert the actual value into known\n        return new Type(registry, value.value);\n    }\n    else if (isNull(value) || isUndefined(value) || value === '0x' || value instanceof None) {\n        // anyhting empty we pass as-is\n        return new None(registry);\n    }\n    else if (isU8a(value)) {\n        // the isU8a check happens last in the if-tree - since the wrapped value\n        // may be an instance of it, so Type and Option checks go in first\n        return !value.length || value[0] === 0\n            ? new None(registry)\n            : new Type(registry, value.subarray(1));\n    }\n    return new Type(registry, value);\n}\n/**\n * @name Option\n * @description\n * An Option is an optional field. Basically the first byte indicates that there is\n * is value to follow. If the byte is `1` there is an actual value. So the Option\n * implements that - decodes, checks for optionality and wraps the required structure\n * with a value if/as required/found.\n */\nexport class Option {\n    constructor(registry, typeName, value, { definition, setDefinition = identity } = {}) {\n        const Type = definition || setDefinition(typeToConstructor(registry, typeName));\n        const decoded = isU8a(value) && value.length && !isCodec(value)\n            ? value[0] === 0\n                ? new None(registry)\n                : new Type(registry, value.subarray(1))\n            : decodeOption(registry, Type, value);\n        this.registry = registry;\n        this.__internal__Type = Type;\n        this.__internal__raw = decoded;\n        if (decoded?.initialU8aLength) {\n            this.initialU8aLength = 1 + decoded.initialU8aLength;\n        }\n    }\n    static with(Type) {\n        let definition;\n        const setDefinition = (d) => {\n            definition = d;\n            return d;\n        };\n        return class extends Option {\n            constructor(registry, value) {\n                super(registry, Type, value, { definition, setDefinition });\n            }\n        };\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        // boolean byte (has value, doesn't have) along with wrapped length\n        return 1 + this.__internal__raw.encodedLength;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Checks if the Option has no value\n     */\n    get isEmpty() {\n        return this.isNone;\n    }\n    /**\n     * @description Checks if the Option has no value\n     */\n    get isNone() {\n        return this.__internal__raw instanceof None;\n    }\n    /**\n     * @description Checks if the Option has a value\n     */\n    get isSome() {\n        return !this.isNone;\n    }\n    /**\n     * @description The actual value for the Option\n     */\n    get value() {\n        return this.__internal__raw;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        if (other instanceof Option) {\n            return (this.isSome === other.isSome) && this.value.eq(other.value);\n        }\n        return this.value.eq(other);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        if (this.isNone) {\n            return { outer: [new Uint8Array([0])] };\n        }\n        const { inner, outer = [] } = this.__internal__raw.inspect();\n        return {\n            inner,\n            outer: [new Uint8Array([1]), ...outer]\n        };\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        // This attempts to align with the JSON encoding - actually in this case\n        // the isSome value is correct, however the `isNone` may be problematic\n        return this.isNone\n            ? '0x'\n            : u8aToHex(this.toU8a().subarray(1));\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        return this.__internal__raw.toHuman(isExtended);\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.isNone\n            ? null\n            : this.__internal__raw.toJSON();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.isNone\n            ? null\n            : this.__internal__raw.toPrimitive();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType(isBare) {\n        const wrapped = this.registry.getClassName(this.__internal__Type) || new this.__internal__Type(this.registry).toRawType();\n        return isBare\n            ? wrapped\n            : `Option<${wrapped}>`;\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return this.__internal__raw.toString();\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        if (isBare) {\n            return this.__internal__raw.toU8a(true);\n        }\n        const u8a = new Uint8Array(this.encodedLength);\n        if (this.isSome) {\n            u8a.set([1]);\n            u8a.set(this.__internal__raw.toU8a(), 1);\n        }\n        return u8a;\n    }\n    /**\n     * @description Returns the value that the Option represents (if available), throws if null\n     */\n    unwrap() {\n        if (this.isNone) {\n            throw new Error('Option: unwrapping a None value');\n        }\n        return this.__internal__raw;\n    }\n    /**\n     * @description Returns the value that the Option represents (if available) or defaultValue if none\n     * @param defaultValue The value to return if the option isNone\n     */\n    unwrapOr(defaultValue) {\n        return this.isSome\n            ? this.unwrap()\n            : defaultValue;\n    }\n    /**\n     * @description Returns the value that the Option represents (if available) or defaultValue if none\n     * @param defaultValue The value to return if the option isNone\n     */\n    unwrapOrDefault() {\n        return this.isSome\n            ? this.unwrap()\n            : new this.__internal__Type(this.registry);\n    }\n}\n","import { identity, isFunction, isHex, isString, isU8a, stringify, u8aConcatStrict, u8aToU8a } from '@polkadot/util';\nimport { AbstractArray } from '../abstract/Array.js';\nimport { decodeU8a, mapToTypeMap, typesToConstructors, typeToConstructor } from '../utils/index.js';\n/** @internal */\nfunction decodeTuple(registry, result, value, Classes) {\n    if (Array.isArray(value)) {\n        const Types = Classes[0];\n        for (let i = 0, count = Types.length; i < count; i++) {\n            try {\n                const entry = value?.[i];\n                result[i] = entry instanceof Types[i]\n                    ? entry\n                    : new Types[i](registry, entry);\n            }\n            catch (error) {\n                throw new Error(`Tuple: failed on ${i}:: ${error.message}`);\n            }\n        }\n        return [result, 0];\n    }\n    else if (isHex(value)) {\n        return decodeU8a(registry, result, u8aToU8a(value), Classes);\n    }\n    else if (!value || !result.length) {\n        const Types = Classes[0];\n        for (let i = 0, count = Types.length; i < count; i++) {\n            result[i] = new Types[i](registry);\n        }\n        return [result, 0];\n    }\n    throw new Error(`Expected array input to Tuple decoding, found ${typeof value}: ${stringify(value)}`);\n}\n/**\n * @name Tuple\n * @description\n * A Tuple defines an anonymous fixed-length array, where each element has its\n * own type. It extends the base JS `Array` object.\n */\nexport class Tuple extends AbstractArray {\n    constructor(registry, Types, value, { definition, setDefinition = identity } = {}) {\n        const Classes = definition || setDefinition(Array.isArray(Types)\n            ? [typesToConstructors(registry, Types), []]\n            : isFunction(Types) || isString(Types)\n                ? [[typeToConstructor(registry, Types)], []]\n                : mapToTypeMap(registry, Types));\n        super(registry, Classes[0].length);\n        this.initialU8aLength = (isU8a(value)\n            ? decodeU8a(registry, this, value, Classes)\n            : decodeTuple(registry, this, value, Classes))[1];\n        this.__internal__Types = Classes;\n    }\n    static with(Types) {\n        let definition;\n        // eslint-disable-next-line no-return-assign\n        const setDefinition = (d) => definition = d;\n        return class extends Tuple {\n            constructor(registry, value) {\n                super(registry, Types, value, { definition, setDefinition });\n            }\n        };\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        let total = 0;\n        for (let i = 0, count = this.length; i < count; i++) {\n            total += this[i].encodedLength;\n        }\n        return total;\n    }\n    /**\n     * @description The types definition of the tuple\n     */\n    get Types() {\n        return this.__internal__Types[1].length\n            ? this.__internal__Types[1]\n            : this.__internal__Types[0].map((T) => new T(this.registry).toRawType());\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {\n            inner: this.inspectInner()\n        };\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        const types = this.__internal__Types[0].map((T) => this.registry.getClassName(T) || new T(this.registry).toRawType());\n        return `(${types.join(',')})`;\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        // Overwrite the default toString representation of Array.\n        return stringify(this.toJSON());\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        return u8aConcatStrict(this.toU8aInner(isBare));\n    }\n}\n","import { Tuple } from '../base/Tuple.js';\n/**\n * @name Range\n * @description\n * Rust `Range<T>` representation\n */\nexport class Range extends Tuple {\n    constructor(registry, Type, value, { rangeName = 'Range' } = {}) {\n        super(registry, [Type, Type], value);\n        this.__internal__rangeName = rangeName;\n    }\n    static with(Type) {\n        return class extends Range {\n            constructor(registry, value) {\n                super(registry, Type, value);\n            }\n        };\n    }\n    /**\n     * @description Returns the starting range value\n     */\n    get start() {\n        return this[0];\n    }\n    /**\n     * @description Returns the ending range value\n     */\n    get end() {\n        return this[1];\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return `${this.__internal__rangeName}<${this.start.toRawType()}>`;\n    }\n}\n","import { Range } from './Range.js';\nexport class RangeInclusive extends Range {\n    constructor(registry, Type, value) {\n        super(registry, Type, value, { rangeName: 'RangeInclusive' });\n    }\n    static with(Type) {\n        return class extends RangeInclusive {\n            constructor(registry, value) {\n                super(registry, Type, value);\n            }\n        };\n    }\n}\n","import { Enum } from './Enum.js';\n/**\n * @name Result\n * @description\n * A Result maps to the Rust Result type, that can either wrap a success or error value\n */\nexport class Result extends Enum {\n    constructor(registry, Ok, Err, value) {\n        // NOTE This is order-dependent, Ok (with index 0) needs to be first\n        // eslint-disable-next-line sort-keys\n        super(registry, { Ok, Err }, value);\n    }\n    static with(Types) {\n        return class extends Result {\n            constructor(registry, value) {\n                super(registry, Types.Ok, Types.Err, value);\n            }\n        };\n    }\n    /**\n     * @description Returns the wrapper Err value (if isErr)\n     */\n    get asErr() {\n        if (!this.isErr) {\n            throw new Error('Cannot extract Err value from Ok result, check isErr first');\n        }\n        return this.value;\n    }\n    /**\n     * @description Returns the wrapper Ok value (if isOk)\n     */\n    get asOk() {\n        if (!this.isOk) {\n            throw new Error('Cannot extract Ok value from Err result, check isOk first');\n        }\n        return this.value;\n    }\n    /**\n     * @description Checks if the Result has no value\n     */\n    get isEmpty() {\n        return this.isOk && this.value.isEmpty;\n    }\n    /**\n     * @description Checks if the Result wraps an Err value\n     */\n    get isErr() {\n        return !this.isOk;\n    }\n    /**\n     * @description Checks if the Result wraps an Ok value\n     */\n    get isOk() {\n        return this.index === 0;\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        const Types = this._toRawStruct();\n        return `Result<${Types.Ok},${Types.Err}>`;\n    }\n}\n","import { BN, bnToBn, bnToU8a, isBn, isNumber, isString, isU8a, isUndefined, objectProperties, stringify, stringPascalCase, u8aToBn, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { compareArray } from '../utils/index.js';\nfunction encodeSet(setValues, values) {\n    const encoded = new BN(0);\n    for (let i = 0, count = values.length; i < count; i++) {\n        encoded.ior(bnToBn(setValues[values[i]] || 0));\n    }\n    return encoded;\n}\n/** @internal */\nfunction decodeSetArray(setValues, values) {\n    const count = values.length;\n    const result = new Array(count);\n    for (let i = 0; i < count; i++) {\n        const key = values[i];\n        if (isUndefined(setValues[key])) {\n            throw new Error(`Set: Invalid key '${key}' passed to Set, allowed ${Object.keys(setValues).join(', ')}`);\n        }\n        result[i] = key;\n    }\n    return result;\n}\n/** @internal */\nfunction decodeSetNumber(setValues, _value) {\n    const bn = bnToBn(_value);\n    const keys = Object.keys(setValues);\n    const result = [];\n    for (let i = 0, count = keys.length; i < count; i++) {\n        const key = keys[i];\n        if (bn.and(bnToBn(setValues[key])).eq(bnToBn(setValues[key]))) {\n            result.push(key);\n        }\n    }\n    const computed = encodeSet(setValues, result);\n    if (!bn.eq(computed)) {\n        throw new Error(`Set: Mismatch decoding '${bn.toString()}', computed as '${computed.toString()}' with ${result.join(', ')}`);\n    }\n    return result;\n}\n/** @internal */\nfunction decodeSet(setValues, value = 0, bitLength) {\n    if (bitLength % 8 !== 0) {\n        throw new Error(`Expected valid bitLength, power of 8, found ${bitLength}`);\n    }\n    const byteLength = bitLength / 8;\n    if (isU8a(value)) {\n        return value.length === 0\n            ? []\n            : decodeSetNumber(setValues, u8aToBn(value.subarray(0, byteLength), { isLe: true }));\n    }\n    else if (isString(value)) {\n        return decodeSet(setValues, u8aToU8a(value), byteLength);\n    }\n    else if (value instanceof Set || Array.isArray(value)) {\n        const input = Array.isArray(value)\n            ? value\n            : [...value.values()];\n        return decodeSetArray(setValues, input);\n    }\n    return decodeSetNumber(setValues, value);\n}\n/**\n * @name Set\n * @description\n * An Set is an array of string values, represented an an encoded type by\n * a bitwise representation of the values.\n */\nexport class CodecSet extends Set {\n    constructor(registry, setValues, value, bitLength = 8) {\n        super(decodeSet(setValues, value, bitLength));\n        /**\n         * @description adds a value to the Set (extended to allow for validity checking)\n         */\n        this.add = (key) => {\n            // ^^^ add = () property done to assign this instance's this, otherwise Set.add creates \"some\" chaos\n            // we have the isUndefined(this._setValues) in here as well, add is used internally\n            // in the Set constructor (so it is undefined at this point, and should allow)\n            if (this.__internal__allowed && isUndefined(this.__internal__allowed[key])) {\n                throw new Error(`Set: Invalid key '${key}' on add`);\n            }\n            super.add(key);\n            return this;\n        };\n        this.registry = registry;\n        this.__internal__allowed = setValues;\n        this.__internal__byteLength = bitLength / 8;\n    }\n    static with(values, bitLength) {\n        var _a;\n        return _a = class extends CodecSet {\n                constructor(registry, value) {\n                    super(registry, values, value, bitLength);\n                }\n            },\n            (() => {\n                const keys = Object.keys(values);\n                const count = keys.length;\n                const isKeys = new Array(count);\n                for (let i = 0; i < count; i++) {\n                    isKeys[i] = `is${stringPascalCase(keys[i])}`;\n                }\n                objectProperties(_a.prototype, isKeys, (_, i, self) => self.strings.includes(keys[i]));\n            })(),\n            _a;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return this.__internal__byteLength;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description true is the Set contains no values\n     */\n    get isEmpty() {\n        return this.size === 0;\n    }\n    /**\n     * @description The actual set values as a string[]\n     */\n    get strings() {\n        return [...super.values()];\n    }\n    /**\n     * @description The encoded value for the set members\n     */\n    get valueEncoded() {\n        return encodeSet(this.__internal__allowed, this.strings);\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        if (Array.isArray(other)) {\n            // we don't actually care about the order, sort the values\n            return compareArray(this.strings.sort(), other.sort());\n        }\n        else if (other instanceof Set) {\n            return this.eq([...other.values()]);\n        }\n        else if (isNumber(other) || isBn(other)) {\n            return this.valueEncoded.eq(bnToBn(other));\n        }\n        return false;\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {\n            outer: [this.toU8a()]\n        };\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        return u8aToHex(this.toU8a());\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return this.toJSON();\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.strings;\n    }\n    /**\n     * @description The encoded value for the set members\n     */\n    toNumber() {\n        return this.valueEncoded.toNumber();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.toJSON();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return stringify({ _set: this.__internal__allowed });\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return `[${this.strings.join(', ')}]`;\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     */\n    toU8a(_isBare) {\n        return bnToU8a(this.valueEncoded, {\n            bitLength: this.__internal__byteLength * 8,\n            isLe: true\n        });\n    }\n}\n","import { AbstractInt } from '../abstract/Int.js';\n/**\n * @name UInt\n * @description\n * A generic unsigned integer codec. For Substrate all numbers are Little Endian encoded,\n * this handles the encoding and decoding of those numbers. Upon construction\n * the bitLength is provided and any additional use keeps the number to this\n * length. This extends `BN`, so all methods available on a normal `BN` object\n * is available here.\n * @noInheritDoc\n */\nexport class UInt extends AbstractInt {\n    static with(bitLength, typeName) {\n        return class extends UInt {\n            constructor(registry, value) {\n                super(registry, value, bitLength);\n            }\n            toRawType() {\n                return typeName || super.toRawType();\n            }\n        };\n    }\n}\n","import { u8aConcatStrict } from '../u8a/index.js';\nimport { compactToU8a } from './toU8a.js';\n/**\n * @name compactAddLength\n * @description Adds a length prefix to the input value\n * @example\n * <BR>\n *\n * ```javascript\n * import { compactAddLength } from '@polkadot/util';\n *\n * console.log(compactAddLength(new Uint8Array([0xde, 0xad, 0xbe, 0xef]))); // Uint8Array([4 << 2, 0xde, 0xad, 0xbe, 0xef])\n * ```\n */\nexport function compactAddLength(input) {\n    return u8aConcatStrict([\n        compactToU8a(input.length),\n        input\n    ]);\n}\n","import { compactAddLength, compactFromU8aLim, compactToU8a, isString, isU8a, u8aToU8a } from '@polkadot/util';\nimport { Raw } from '../native/Raw.js';\nconst MAX_LENGTH = 10 * 1024 * 1024;\n/** @internal */\nfunction decodeBytesU8a(value) {\n    if (!value.length) {\n        return [new Uint8Array(), 0];\n    }\n    // handle all other Uint8Array inputs, these do have a length prefix\n    const [offset, length] = compactFromU8aLim(value);\n    const total = offset + length;\n    if (length > MAX_LENGTH) {\n        throw new Error(`Bytes length ${length.toString()} exceeds ${MAX_LENGTH}`);\n    }\n    else if (total > value.length) {\n        throw new Error(`Bytes: required length less than remainder, expected at least ${total}, found ${value.length}`);\n    }\n    return [value.subarray(offset, total), total];\n}\n/**\n * @name Bytes\n * @description\n * A Bytes wrapper for Vec<u8>. The significant difference between this and a normal Uint8Array\n * is that this version allows for length-encoding. (i.e. it is a variable-item codec, the same\n * as what is found in [[Text]] and [[Vec]])\n */\nexport class Bytes extends Raw {\n    constructor(registry, value) {\n        const [u8a, decodedLength] = isU8a(value) && !(value instanceof Raw)\n            ? decodeBytesU8a(value)\n            : Array.isArray(value) || isString(value)\n                ? [u8aToU8a(value), 0]\n                : [value, 0];\n        super(registry, u8a, decodedLength);\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return this.length + compactToU8a(this.length).length;\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect(isBare) {\n        const clength = compactToU8a(this.length);\n        return {\n            outer: isBare\n                ? [super.toU8a()]\n                : this.length\n                    ? [clength, super.toU8a()]\n                    : [clength]\n        };\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Bytes';\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        return isBare\n            ? super.toU8a(isBare)\n            : compactAddLength(this);\n    }\n}\n","import { compactFromU8aLim, identity, isHex, isU8a, logger, stringify, u8aToU8a } from '@polkadot/util';\nimport { AbstractArray } from '../abstract/Array.js';\nimport { decodeU8aVec, typeToConstructor } from '../utils/index.js';\nconst MAX_LENGTH = 64 * 1024;\nconst l = logger('Vec');\nfunction decodeVecLength(value) {\n    if (Array.isArray(value)) {\n        return [value, value.length, 0];\n    }\n    else if (isU8a(value) || isHex(value)) {\n        const u8a = u8aToU8a(value);\n        const [startAt, length] = compactFromU8aLim(u8a);\n        if (length > MAX_LENGTH) {\n            throw new Error(`Vec length ${length.toString()} exceeds ${MAX_LENGTH}`);\n        }\n        return [u8a, length, startAt];\n    }\n    else if (!value) {\n        return [null, 0, 0];\n    }\n    throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof value}: ${stringify(value)}`);\n}\nexport function decodeVec(registry, result, value, startAt, Type) {\n    if (Array.isArray(value)) {\n        const count = result.length;\n        for (let i = 0; i < count; i++) {\n            // 26/08/2022 this is actually a false positive - after recent eslint upgdates\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n            const entry = value[i];\n            try {\n                result[i] = entry instanceof Type\n                    ? entry\n                    : new Type(registry, entry);\n            }\n            catch (error) {\n                l.error(`Unable to decode on index ${i}`, error.message);\n                throw error;\n            }\n        }\n        return [0, 0];\n    }\n    else if (!value) {\n        return [0, 0];\n    }\n    // we don't need more checks, we already limited it via the length decoding\n    return decodeU8aVec(registry, result, u8aToU8a(value), startAt, Type);\n}\n/**\n * @name Vec\n * @description\n * This manages codec arrays. Internally it keeps track of the length (as decoded) and allows\n * construction with the passed `Type` in the constructor. It is an extension to Array, providing\n * specific encoding/decoding on top of the base type.\n */\nexport class Vec extends AbstractArray {\n    constructor(registry, Type, value = [], { definition, setDefinition = identity } = {}) {\n        const [decodeFrom, length, startAt] = decodeVecLength(value);\n        super(registry, length);\n        this.__internal__Type = definition || setDefinition(typeToConstructor(registry, Type));\n        this.initialU8aLength = (isU8a(decodeFrom)\n            ? decodeU8aVec(registry, this, decodeFrom, startAt, this.__internal__Type)\n            : decodeVec(registry, this, decodeFrom, startAt, this.__internal__Type))[0];\n    }\n    static with(Type) {\n        let definition;\n        // eslint-disable-next-line no-return-assign\n        const setDefinition = (d) => (definition = d);\n        return class extends Vec {\n            constructor(registry, value) {\n                super(registry, Type, value, { definition, setDefinition });\n            }\n        };\n    }\n    /**\n     * @description The type for the items\n     */\n    get Type() {\n        return this.__internal__Type.name;\n    }\n    /**\n     * @description Finds the index of the value in the array\n     */\n    indexOf(other) {\n        // convert type first, this removes overhead from the eq\n        const check = other instanceof this.__internal__Type\n            ? other\n            : new this.__internal__Type(this.registry, other);\n        for (let i = 0, count = this.length; i < count; i++) {\n            if (check.eq(this[i])) {\n                return i;\n            }\n        }\n        return -1;\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return `Vec<${this.registry.getClassName(this.__internal__Type) || new this.__internal__Type(this.registry).toRawType()}>`;\n    }\n}\n","import { isU8a, u8aToU8a } from '@polkadot/util';\nimport { Raw } from '../native/Raw.js';\n/** @internal */\nfunction decodeU8aFixed(value, bitLength) {\n    const u8a = u8aToU8a(value);\n    const byteLength = bitLength / 8;\n    if (!u8a.length) {\n        return [new Uint8Array(byteLength), 0];\n    }\n    if (isU8a(value) ? u8a.length < byteLength : u8a.length !== byteLength) {\n        throw new Error(`Expected input with ${byteLength} bytes (${bitLength} bits), found ${u8a.length} bytes`);\n    }\n    return [u8a.subarray(0, byteLength), byteLength];\n}\n/**\n * @name U8aFixed\n * @description\n * A U8a that manages a a sequence of bytes up to the specified bitLength. Not meant\n * to be used directly, rather is should be subclassed with the specific lengths.\n */\nexport class U8aFixed extends Raw {\n    constructor(registry, value = new Uint8Array(), bitLength = 256) {\n        const [u8a, decodedLength] = decodeU8aFixed(value, bitLength);\n        super(registry, u8a, decodedLength);\n    }\n    static with(bitLength, typeName) {\n        return class extends U8aFixed {\n            constructor(registry, value) {\n                super(registry, value, bitLength);\n            }\n            toRawType() {\n                return typeName || super.toRawType();\n            }\n        };\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return `[u8;${this.length}]`;\n    }\n}\n","import { identity, isU8a, u8aConcatStrict } from '@polkadot/util';\nimport { AbstractArray } from '../abstract/Array.js';\nimport { decodeU8aVec, typeToConstructor } from '../utils/index.js';\nimport { decodeVec } from './Vec.js';\n/**\n * @name VecFixed\n * @description\n * This manages codec arrays of a fixed length\n */\nexport class VecFixed extends AbstractArray {\n    constructor(registry, Type, length, value = [], { definition, setDefinition = identity } = {}) {\n        super(registry, length);\n        this.__internal__Type = definition || setDefinition(typeToConstructor(registry, Type));\n        this.initialU8aLength = (isU8a(value)\n            ? decodeU8aVec(registry, this, value, 0, this.__internal__Type)\n            : decodeVec(registry, this, value, 0, this.__internal__Type))[1];\n    }\n    static with(Type, length) {\n        let definition;\n        // eslint-disable-next-line no-return-assign\n        const setDefinition = (d) => (definition = d);\n        return class extends VecFixed {\n            constructor(registry, value) {\n                super(registry, Type, length, value, { definition, setDefinition });\n            }\n        };\n    }\n    /**\n     * @description The type for the items\n     */\n    get Type() {\n        return new this.__internal__Type(this.registry).toRawType();\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        let total = 0;\n        for (let i = 0, count = this.length; i < count; i++) {\n            total += this[i].encodedLength;\n        }\n        return total;\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {\n            inner: this.inspectInner()\n        };\n    }\n    toU8a() {\n        // we override, we don't add the length prefix for ourselves, and at the same time we\n        // ignore isBare on entries, since they should be properly encoded at all times\n        const encoded = this.toU8aInner();\n        return encoded.length\n            ? u8aConcatStrict(encoded)\n            : new Uint8Array([]);\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return `[${this.Type};${this.length}]`;\n    }\n}\n","import { compactFromU8a } from './fromU8a.js';\n/**\n * @name compactStripLength\n * @description Removes the length prefix, returning both the total length (including the value + compact encoding) and the decoded value with the correct length\n * @example\n * <BR>\n *\n * ```javascript\n * import { compactStripLength } from '@polkadot/util';\n *\n * console.log(compactStripLength(new Uint8Array([2 << 2, 0xde, 0xad]))); // [2, Uint8Array[0xde, 0xad]]\n * ```\n */\nexport function compactStripLength(input) {\n    const [offset, length] = compactFromU8a(input);\n    const total = offset + length.toNumber();\n    return [\n        total,\n        input.subarray(offset, total)\n    ];\n}\n","import { compactAddLength, compactStripLength, compactToU8a, isHex, isU8a, u8aToU8a } from '@polkadot/util';\nimport { Raw } from '../native/Raw.js';\nimport { typeToConstructor } from '../utils/index.js';\nimport { Bytes } from './Bytes.js';\nfunction decodeRaw(registry, typeName, value) {\n    const Type = typeToConstructor(registry, typeName);\n    if (isU8a(value) || isHex(value)) {\n        try {\n            const [, u8a] = isHex(value)\n                ? [0, u8aToU8a(value)]\n                : (value instanceof Raw)\n                    ? [0, value.subarray()]\n                    : compactStripLength(value);\n            return [Type, new Type(registry, u8a), value];\n        }\n        catch {\n            return [Type, null, value];\n        }\n    }\n    const instance = new Type(registry, value);\n    return [Type, instance, compactAddLength(instance.toU8a())];\n}\nexport class WrapperKeepOpaque extends Bytes {\n    constructor(registry, typeName, value, { opaqueName = 'WrapperKeepOpaque' } = {}) {\n        const [Type, decoded, u8a] = decodeRaw(registry, typeName, value);\n        super(registry, u8a);\n        this.__internal__Type = Type;\n        this.__internal__decoded = decoded;\n        this.__internal__opaqueName = opaqueName;\n    }\n    static with(Type) {\n        return class extends WrapperKeepOpaque {\n            constructor(registry, value) {\n                super(registry, Type, value);\n            }\n        };\n    }\n    /**\n     * @description Checks if the wrapper is decodable\n     */\n    get isDecoded() {\n        return !!this.__internal__decoded;\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return this.__internal__decoded\n            ? {\n                inner: [this.__internal__decoded.inspect()],\n                outer: [compactToU8a(this.length)]\n            }\n            : {\n                outer: [compactToU8a(this.length), this.toU8a(true)]\n            };\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        return this.__internal__decoded\n            ? this.__internal__decoded.toHuman(isExtended)\n            : super.toHuman();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.__internal__decoded\n            ? this.__internal__decoded.toPrimitive()\n            : super.toPrimitive();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return `${this.__internal__opaqueName}<${this.registry.getClassName(this.__internal__Type) || (this.__internal__decoded ? this.__internal__decoded.toRawType() : new this.__internal__Type(this.registry).toRawType())}>`;\n    }\n    /**\n     * @description Converts the Object to to a string (either decoded or bytes)\n     */\n    toString() {\n        return this.__internal__decoded\n            ? this.__internal__decoded.toString()\n            : super.toString();\n    }\n    /**\n     * @description Returns the decoded that the WrapperKeepOpaque represents (if available), throws if non-decodable\n     */\n    unwrap() {\n        if (!this.__internal__decoded) {\n            throw new Error(`${this.__internal__opaqueName}: unwrapping an undecodable value`);\n        }\n        return this.__internal__decoded;\n    }\n}\n","import { WrapperKeepOpaque } from './WrapperKeepOpaque.js';\nexport class WrapperOpaque extends WrapperKeepOpaque {\n    constructor(registry, typeName, value) {\n        super(registry, typeName, value, { opaqueName: 'WrapperOpaque' });\n    }\n    static with(Type) {\n        return class extends WrapperOpaque {\n            constructor(registry, value) {\n                super(registry, Type, value);\n            }\n        };\n    }\n    /**\n     * @description The inner value for this wrapper, in all cases it _should_ be decodable (unlike KeepOpaque)\n     */\n    get inner() {\n        return this.unwrap();\n    }\n}\n","export var TypeDefInfo;\n(function (TypeDefInfo) {\n    TypeDefInfo[TypeDefInfo[\"BTreeMap\"] = 0] = \"BTreeMap\";\n    TypeDefInfo[TypeDefInfo[\"BTreeSet\"] = 1] = \"BTreeSet\";\n    TypeDefInfo[TypeDefInfo[\"Compact\"] = 2] = \"Compact\";\n    TypeDefInfo[TypeDefInfo[\"DoNotConstruct\"] = 3] = \"DoNotConstruct\";\n    TypeDefInfo[TypeDefInfo[\"Enum\"] = 4] = \"Enum\";\n    TypeDefInfo[TypeDefInfo[\"HashMap\"] = 5] = \"HashMap\";\n    TypeDefInfo[TypeDefInfo[\"Int\"] = 6] = \"Int\";\n    TypeDefInfo[TypeDefInfo[\"Linkage\"] = 7] = \"Linkage\";\n    TypeDefInfo[TypeDefInfo[\"Null\"] = 8] = \"Null\";\n    TypeDefInfo[TypeDefInfo[\"Option\"] = 9] = \"Option\";\n    TypeDefInfo[TypeDefInfo[\"Plain\"] = 10] = \"Plain\";\n    TypeDefInfo[TypeDefInfo[\"Range\"] = 11] = \"Range\";\n    TypeDefInfo[TypeDefInfo[\"RangeInclusive\"] = 12] = \"RangeInclusive\";\n    TypeDefInfo[TypeDefInfo[\"Result\"] = 13] = \"Result\";\n    TypeDefInfo[TypeDefInfo[\"Set\"] = 14] = \"Set\";\n    TypeDefInfo[TypeDefInfo[\"Si\"] = 15] = \"Si\";\n    TypeDefInfo[TypeDefInfo[\"Struct\"] = 16] = \"Struct\";\n    TypeDefInfo[TypeDefInfo[\"Tuple\"] = 17] = \"Tuple\";\n    TypeDefInfo[TypeDefInfo[\"UInt\"] = 18] = \"UInt\";\n    TypeDefInfo[TypeDefInfo[\"Vec\"] = 19] = \"Vec\";\n    TypeDefInfo[TypeDefInfo[\"VecFixed\"] = 20] = \"VecFixed\";\n    TypeDefInfo[TypeDefInfo[\"WrapperKeepOpaque\"] = 21] = \"WrapperKeepOpaque\";\n    TypeDefInfo[TypeDefInfo[\"WrapperOpaque\"] = 22] = \"WrapperOpaque\";\n})(TypeDefInfo || (TypeDefInfo = {}));\n","const BOUNDED = ['BTreeMap', 'BTreeSet', 'HashMap', 'Vec'];\nconst ALLOWED_BOXES = BOUNDED.concat(['Compact', 'DoNotConstruct', 'Int', 'Linkage', 'Range', 'RangeInclusive', 'Result', 'Opaque', 'Option', 'UInt', 'WrapperKeepOpaque', 'WrapperOpaque']);\nconst BOX_PRECEDING = ['<', '(', '[', '\"', ',', ' ']; // start of vec, tuple, fixed array, part of struct def or in tuple\nconst mappings = [\n    // alias <T::InherentOfflineReport as InherentOfflineReport>::Inherent -> InherentOfflineReport\n    alias('<T::InherentOfflineReport as InherentOfflineReport>::Inherent', 'InherentOfflineReport', false),\n    alias('VecDeque<', 'Vec<', false),\n    // <T::Balance as HasCompact>\n    cleanupCompact(),\n    // Change BoundedVec<Type, Size> to Vec<Type>\n    removeExtensions('Bounded', true),\n    // Change WeakVec<Type> to Vec<Type>\n    removeExtensions('Weak', false),\n    // Remove all the trait prefixes\n    removeTraits(),\n    // remove PairOf<T> -> (T, T)\n    removePairOf(),\n    // remove boxing, `Box<Proposal>` -> `Proposal`\n    removeWrap('Box<'),\n    // remove generics, `MisbehaviorReport<Hash, BlockNumber>` -> `MisbehaviorReport`\n    removeGenerics(),\n    // alias String -> Text (compat with jsonrpc methods)\n    alias('String', 'Text'),\n    // alias Vec<u8> -> Bytes\n    alias('Vec<u8>', 'Bytes'),\n    alias('&\\\\[u8\\\\]', 'Bytes'),\n    alias(\"&'static\\\\[u8\\\\]\", 'Bytes'),\n    // alias RawAddress -> Address\n    alias('RawAddress', 'Address'),\n    // lookups, mapped to Address/AccountId as appropriate in runtime\n    alias('Lookup::Source', 'LookupSource'),\n    alias('Lookup::Target', 'LookupTarget'),\n    // HACK duplication between contracts & primitives, however contracts prefixed with exec\n    alias('exec::StorageKey', 'ContractStorageKey'),\n    // flattens tuples with one value, `(AccountId)` -> `AccountId`\n    flattenSingleTuple(),\n    // converts ::Type to Type, <T as Trait<I>>::Proposal -> Proposal\n    removeColons(),\n    // remove all trailing spaces - this should always be the last\n    trim()\n];\nexport function trim() {\n    return (value) => value.trim();\n}\nexport function findClosing(value, start) {\n    let depth = 0;\n    for (let i = start, count = value.length; i < count; i++) {\n        if (value[i] === '>') {\n            if (!depth) {\n                return i;\n            }\n            depth--;\n        }\n        else if (value[i] === '<') {\n            depth++;\n        }\n    }\n    throw new Error(`Unable to find closing matching <> on '${value}' (start ${start})`);\n}\nexport function alias(src, dest, withChecks = true) {\n    const from = new RegExp(`(^${src}|${BOX_PRECEDING.map((box) => `\\\\${box}${src}`).join('|')})`, 'g');\n    const to = (src) => {\n        from.lastIndex = 0;\n        return withChecks && BOX_PRECEDING.includes(src[0])\n            ? `${src[0]}${dest}`\n            : dest;\n    };\n    return (value) => value.replace(from, to);\n}\nexport function cleanupCompact() {\n    return (value) => {\n        if (value.includes(' as HasCompact')) {\n            for (let i = 0, count = value.length; i < count; i++) {\n                if (value[i] === '<') {\n                    const end = findClosing(value, i + 1) - 14;\n                    if (value.substring(end, end + 14) === ' as HasCompact') {\n                        value = `Compact<${value.substring(i + 1, end)}>`;\n                    }\n                }\n            }\n        }\n        return value;\n    };\n}\nexport function flattenSingleTuple() {\n    const from1 = /,\\)/g;\n    const from2 = /\\(([^,]+)\\)/;\n    return (value) => {\n        from1.lastIndex = 0;\n        return value\n            // tuples may have trailing commas, e.g. (u32, BlockNumber, )\n            .replace(from1, ')')\n            // change (u32) -> u32\n            .replace(from2, '$1');\n    };\n}\nfunction replaceTagWith(value, matcher, replacer) {\n    let index = -1;\n    while (true) {\n        index = value.indexOf(matcher, index + 1);\n        if (index === -1) {\n            return value;\n        }\n        const start = index + matcher.length;\n        const end = findClosing(value, start);\n        value = `${value.substring(0, index)}${replacer(value.substring(start, end))}${value.substring(end + 1)}`;\n    }\n}\nexport function removeExtensions(type, isSized) {\n    return (value) => {\n        for (let i = 0, count = BOUNDED.length; i < count; i++) {\n            const tag = BOUNDED[i];\n            value = replaceTagWith(value, `${type}${tag}<`, (v) => {\n                const parts = v\n                    .split(',')\n                    .map((s) => s.trim())\n                    .filter((s) => s);\n                if (isSized) {\n                    parts.pop();\n                }\n                return `${tag}<${parts.join(',')}>`;\n            });\n        }\n        return value;\n    };\n}\nexport function removeColons() {\n    return (value) => {\n        let index = 0;\n        while (index !== -1) {\n            index = value.indexOf('::');\n            if (index === 0) {\n                value = value.substring(2);\n            }\n            else if (index !== -1) {\n                let start = index;\n                while (start !== -1 && !BOX_PRECEDING.includes(value[start])) {\n                    start--;\n                }\n                value = `${value.substring(0, start + 1)}${value.substring(index + 2)}`;\n            }\n        }\n        return value;\n    };\n}\nexport function removeGenerics() {\n    return (value) => {\n        for (let i = 0, count = value.length; i < count; i++) {\n            if (value[i] === '<') {\n                // check against the allowed wrappers, be it Vec<..>, Option<...> ...\n                const box = ALLOWED_BOXES.find((box) => {\n                    const start = i - box.length;\n                    return ((start >= 0 &&\n                        value.substring(start, i) === box) && (\n                    // make sure it is stand-alone, i.e. don't catch ElectionResult<...> as Result<...>\n                    start === 0 ||\n                        BOX_PRECEDING.includes(value[start - 1])));\n                });\n                // we have not found anything, unwrap generic innards\n                if (!box) {\n                    const end = findClosing(value, i + 1);\n                    value = `${value.substring(0, i)}${value.substring(end + 1)}`;\n                }\n            }\n        }\n        return value;\n    };\n}\nexport function removePairOf() {\n    const replacer = (v) => `(${v},${v})`;\n    return (value) => replaceTagWith(value, 'PairOf<', replacer);\n}\nexport function removeTraits() {\n    const from1 = /\\s/g;\n    const from2 = /(T|Self)::/g;\n    const from3 = /<(T|Self)asTrait>::/g;\n    const from4 = /<Tas[a-z]+::Trait>::/g;\n    const from5 = /<LookupasStaticLookup>/g;\n    const from6 = /::Type/g;\n    return (value) => {\n        from1.lastIndex = 0;\n        from2.lastIndex = 0;\n        from3.lastIndex = 0;\n        from4.lastIndex = 0;\n        from5.lastIndex = 0;\n        from6.lastIndex = 0;\n        return value\n            // remove all whitespaces\n            .replace(from1, '')\n            // anything `T::<type>` to end up as `<type>`\n            .replace(from2, '')\n            // replace `<T as Trait>::` (whitespaces were removed above)\n            .replace(from3, '')\n            // replace `<T as something::Trait>::` (whitespaces were removed above)\n            .replace(from4, '')\n            // replace <Lookup as StaticLookup>\n            .replace(from5, 'Lookup')\n            // replace `<...>::Type`\n            .replace(from6, '');\n    };\n}\nexport function removeWrap(check) {\n    const replacer = (v) => v;\n    return (value) => replaceTagWith(value, check, replacer);\n}\nconst sanitizeMap = new Map();\nexport function sanitize(value) {\n    const startValue = value.toString();\n    const memoized = sanitizeMap.get(startValue);\n    if (memoized) {\n        return memoized;\n    }\n    let result = startValue;\n    for (let i = 0, count = mappings.length; i < count; i++) {\n        result = mappings[i](result);\n    }\n    sanitizeMap.set(startValue, result);\n    return result;\n}\n","import { sanitize } from '@polkadot/types-codec';\nimport { isNumber, isString, objectSpread, stringify } from '@polkadot/util';\nimport { TypeDefInfo } from '../types/index.js';\nimport { typeSplit } from './typeSplit.js';\nconst KNOWN_INTERNALS = ['_alias', '_fallback'];\nfunction getTypeString(typeOrObj) {\n    return isString(typeOrObj)\n        ? typeOrObj.toString()\n        : stringify(typeOrObj);\n}\nfunction isRustEnum(details) {\n    const values = Object.values(details);\n    if (values.some((v) => isNumber(v))) {\n        if (!values.every((v) => isNumber(v) && v >= 0 && v <= 255)) {\n            throw new Error('Invalid number-indexed enum definition');\n        }\n        return false;\n    }\n    return true;\n}\nfunction _decodeEnum(value, details, count, fallbackType) {\n    value.info = TypeDefInfo.Enum;\n    value.fallbackType = fallbackType;\n    // not as pretty, but remain compatible with oo7 for both struct and Array types\n    if (Array.isArray(details)) {\n        value.sub = details.map((name, index) => ({\n            index,\n            info: TypeDefInfo.Plain,\n            name,\n            type: 'Null'\n        }));\n    }\n    else if (isRustEnum(details)) {\n        value.sub = Object.entries(details).map(([name, typeOrObj], index) => objectSpread({}, getTypeDef(getTypeString(typeOrObj || 'Null'), { name }, count), { index }));\n    }\n    else {\n        value.sub = Object.entries(details).map(([name, index]) => ({\n            index,\n            info: TypeDefInfo.Plain,\n            name,\n            type: 'Null'\n        }));\n    }\n    return value;\n}\nfunction _decodeSet(value, details, fallbackType) {\n    value.info = TypeDefInfo.Set;\n    value.fallbackType = fallbackType;\n    value.length = details._bitLength;\n    value.sub = Object\n        .entries(details)\n        .filter(([name]) => !name.startsWith('_'))\n        .map(([name, index]) => ({\n        index,\n        info: TypeDefInfo.Plain,\n        name,\n        type: 'Null'\n    }));\n    return value;\n}\nfunction _decodeStruct(value, type, _, count) {\n    const parsed = JSON.parse(type);\n    const keys = Object.keys(parsed);\n    if (parsed._enum) {\n        return _decodeEnum(value, parsed._enum, count, parsed._fallback);\n    }\n    else if (parsed._set) {\n        return _decodeSet(value, parsed._set, parsed._fallback);\n    }\n    value.alias = parsed._alias\n        ? new Map(Object.entries(parsed._alias))\n        : undefined;\n    value.fallbackType = parsed._fallback;\n    value.sub = keys\n        .filter((name) => !KNOWN_INTERNALS.includes(name))\n        .map((name) => getTypeDef(getTypeString(parsed[name]), { name }, count));\n    return value;\n}\nfunction _decodeFixedVec(value, type, _, count) {\n    const max = type.length - 1;\n    let index = -1;\n    let inner = 0;\n    for (let i = 1; (i < max) && (index === -1); i++) {\n        switch (type[i]) {\n            case ';': {\n                if (inner === 0) {\n                    index = i;\n                }\n                break;\n            }\n            case '[':\n            case '(':\n            case '<':\n                inner++;\n                break;\n            case ']':\n            case ')':\n            case '>':\n                inner--;\n                break;\n        }\n    }\n    if (index === -1) {\n        throw new Error(`${type}: Unable to extract location of ';'`);\n    }\n    const vecType = type.substring(1, index);\n    const [strLength, displayName] = type.substring(index + 1, max).split(';');\n    const length = parseInt(strLength.trim(), 10);\n    if (length > 2048) {\n        throw new Error(`${type}: Only support for [Type; <length>], where length <= 2048`);\n    }\n    value.displayName = displayName;\n    value.length = length;\n    value.sub = getTypeDef(vecType, {}, count);\n    return value;\n}\nfunction _decodeTuple(value, _, subType, count) {\n    value.sub = subType.length === 0\n        ? []\n        : typeSplit(subType).map((inner) => getTypeDef(inner, {}, count));\n    return value;\n}\nfunction _decodeAnyInt(value, type, _, clazz) {\n    const [strLength, displayName] = type.substring(clazz.length + 1, type.length - 1).split(',');\n    const length = parseInt(strLength.trim(), 10);\n    if ((length > 8192) || (length % 8)) {\n        throw new Error(`${type}: Only support for ${clazz}<bitLength>, where length <= 8192 and a power of 8, found ${length}`);\n    }\n    value.displayName = displayName;\n    value.length = length;\n    return value;\n}\nfunction _decodeInt(value, type, subType) {\n    return _decodeAnyInt(value, type, subType, 'Int');\n}\nfunction _decodeUInt(value, type, subType) {\n    return _decodeAnyInt(value, type, subType, 'UInt');\n}\nfunction _decodeDoNotConstruct(value, type, _) {\n    const NAME_LENGTH = 'DoNotConstruct'.length;\n    value.displayName = type.substring(NAME_LENGTH + 1, type.length - 1);\n    return value;\n}\nfunction hasWrapper(type, [start, end]) {\n    return (type.startsWith(start)) && (type.slice(-1 * end.length) === end);\n}\nconst nestedExtraction = [\n    ['[', ']', TypeDefInfo.VecFixed, _decodeFixedVec],\n    ['{', '}', TypeDefInfo.Struct, _decodeStruct],\n    ['(', ')', TypeDefInfo.Tuple, _decodeTuple],\n    // the inner for these are the same as tuple, multiple values\n    ['BTreeMap<', '>', TypeDefInfo.BTreeMap, _decodeTuple],\n    ['HashMap<', '>', TypeDefInfo.HashMap, _decodeTuple],\n    ['Int<', '>', TypeDefInfo.Int, _decodeInt],\n    ['Result<', '>', TypeDefInfo.Result, _decodeTuple],\n    ['UInt<', '>', TypeDefInfo.UInt, _decodeUInt],\n    ['DoNotConstruct<', '>', TypeDefInfo.DoNotConstruct, _decodeDoNotConstruct]\n];\nconst wrappedExtraction = [\n    ['BTreeSet<', '>', TypeDefInfo.BTreeSet],\n    ['Compact<', '>', TypeDefInfo.Compact],\n    ['Linkage<', '>', TypeDefInfo.Linkage],\n    ['Opaque<', '>', TypeDefInfo.WrapperOpaque],\n    ['Option<', '>', TypeDefInfo.Option],\n    ['Range<', '>', TypeDefInfo.Range],\n    ['RangeInclusive<', '>', TypeDefInfo.RangeInclusive],\n    ['Vec<', '>', TypeDefInfo.Vec],\n    ['WrapperKeepOpaque<', '>', TypeDefInfo.WrapperKeepOpaque],\n    ['WrapperOpaque<', '>', TypeDefInfo.WrapperOpaque]\n];\nfunction extractSubType(type, [start, end]) {\n    return type.substring(start.length, type.length - end.length);\n}\nexport function getTypeDef(_type, { displayName, name } = {}, count = 0) {\n    // create the type via Type, allowing types to be sanitized\n    const type = sanitize(_type);\n    const value = { displayName, info: TypeDefInfo.Plain, name, type };\n    if (++count > 64) {\n        throw new Error('getTypeDef: Maximum nested limit reached');\n    }\n    const nested = nestedExtraction.find((nested) => hasWrapper(type, nested));\n    if (nested) {\n        value.info = nested[2];\n        return nested[3](value, type, extractSubType(type, nested), count);\n    }\n    const wrapped = wrappedExtraction.find((wrapped) => hasWrapper(type, wrapped));\n    if (wrapped) {\n        value.info = wrapped[2];\n        value.sub = getTypeDef(extractSubType(type, wrapped), {}, count);\n    }\n    return value;\n}\n","export function typeSplit(type) {\n    const result = [];\n    // these are the depths of the various tokens: <, [, {, (\n    let c = 0;\n    let f = 0;\n    let s = 0;\n    let t = 0;\n    // current start position\n    let start = 0;\n    for (let i = 0, count = type.length; i < count; i++) {\n        switch (type[i]) {\n            // if we are not nested, add the type\n            case ',': {\n                if (!(c || f || s || t)) {\n                    result.push(type.substring(start, i).trim());\n                    start = i + 1;\n                }\n                break;\n            }\n            // adjust compact/vec (and friends) depth\n            case '<':\n                c++;\n                break;\n            case '>':\n                c--;\n                break;\n            // adjust fixed vec depths\n            case '[':\n                f++;\n                break;\n            case ']':\n                f--;\n                break;\n            // adjust struct depth\n            case '{':\n                s++;\n                break;\n            case '}':\n                s--;\n                break;\n            // adjust tuple depth\n            case '(':\n                t++;\n                break;\n            case ')':\n                t--;\n                break;\n        }\n    }\n    // ensure we have all the terminators taken care of\n    if (c || f || s || t) {\n        throw new Error(`Invalid definition (missing terminators) found in ${type}`);\n    }\n    // the final leg of the journey\n    result.push(type.substring(start, type.length).trim());\n    return result;\n}\n","import { BTreeMap, BTreeSet, Bytes, CodecSet, Compact, DoNotConstruct, Enum, HashMap, Int, Null, Option, Range, RangeInclusive, Result, Struct, Tuple, U8aFixed, UInt, Vec, VecFixed, WrapperKeepOpaque, WrapperOpaque } from '@polkadot/types-codec';\nimport { isNumber, stringify } from '@polkadot/util';\nimport { TypeDefInfo } from '../types/index.js';\nimport { getTypeDef } from '../util/getTypeDef.js';\nfunction getTypeDefType({ lookupName, type }) {\n    return lookupName || type;\n}\nfunction getSubDefArray(value) {\n    if (!Array.isArray(value.sub)) {\n        throw new Error(`Expected subtype as TypeDef[] in ${stringify(value)}`);\n    }\n    return value.sub;\n}\nfunction getSubDef(value) {\n    if (!value.sub || Array.isArray(value.sub)) {\n        throw new Error(`Expected subtype as TypeDef in ${stringify(value)}`);\n    }\n    return value.sub;\n}\nfunction getSubType(value) {\n    return getTypeDefType(getSubDef(value));\n}\nfunction getTypeClassMap(value) {\n    const subs = getSubDefArray(value);\n    const map = {};\n    for (let i = 0, count = subs.length; i < count; i++) {\n        const sub = subs[i];\n        if (!sub.name) {\n            throw new Error(`No name found in definition ${stringify(sub)}`);\n        }\n        map[sub.name] = getTypeDefType(sub);\n    }\n    return map;\n}\nfunction getTypeClassArray(value) {\n    return getSubDefArray(value).map(getTypeDefType);\n}\nfunction createInt(Clazz, { displayName, length }) {\n    if (!isNumber(length)) {\n        throw new Error(`Expected bitLength information for ${displayName || Clazz.constructor.name}<bitLength>`);\n    }\n    return Clazz.with(length, displayName);\n}\nfunction createHashMap(Clazz, value) {\n    const [keyType, valueType] = getTypeClassArray(value);\n    return Clazz.with(keyType, valueType);\n}\nfunction createWithSub(Clazz, value) {\n    return Clazz.with(getSubType(value));\n}\nconst infoMapping = {\n    [TypeDefInfo.BTreeMap]: (_registry, value) => createHashMap(BTreeMap, value),\n    [TypeDefInfo.BTreeSet]: (_registry, value) => createWithSub(BTreeSet, value),\n    [TypeDefInfo.Compact]: (_registry, value) => createWithSub(Compact, value),\n    [TypeDefInfo.DoNotConstruct]: (_registry, value) => DoNotConstruct.with(value.displayName || value.type),\n    [TypeDefInfo.Enum]: (_registry, value) => {\n        const subs = getSubDefArray(value);\n        return Enum.with(subs.every(({ type }) => type === 'Null')\n            ? subs.reduce((out, { index, name }, count) => {\n                if (!name) {\n                    throw new Error('No name found in sub definition');\n                }\n                out[name] = index || count;\n                return out;\n            }, {})\n            : getTypeClassMap(value));\n    },\n    [TypeDefInfo.HashMap]: (_registry, value) => createHashMap(HashMap, value),\n    [TypeDefInfo.Int]: (_registry, value) => createInt(Int, value),\n    // We have circular deps between Linkage & Struct\n    [TypeDefInfo.Linkage]: (_registry, value) => {\n        const type = `Option<${getSubType(value)}>`;\n        // eslint-disable-next-line sort-keys\n        const Clazz = Struct.with({ previous: type, next: type });\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n        Clazz.prototype.toRawType = function () {\n            // eslint-disable-next-line @typescript-eslint/restrict-template-expressions,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call\n            return `Linkage<${this.next.toRawType(true)}>`;\n        };\n        return Clazz;\n    },\n    [TypeDefInfo.Null]: (_registry, _value) => Null,\n    [TypeDefInfo.Option]: (_registry, value) => {\n        if (!value.sub || Array.isArray(value.sub)) {\n            throw new Error('Expected type information for Option');\n        }\n        // NOTE This is opt-in (unhandled), not by default\n        // if (value.sub.type === 'bool') {\n        //   return OptionBool;\n        // }\n        return createWithSub(Option, value);\n    },\n    [TypeDefInfo.Plain]: (registry, value) => registry.getOrUnknown(value.type),\n    [TypeDefInfo.Range]: (_registry, value) => createWithSub(Range, value),\n    [TypeDefInfo.RangeInclusive]: (_registry, value) => createWithSub(RangeInclusive, value),\n    [TypeDefInfo.Result]: (_registry, value) => {\n        const [Ok, Err] = getTypeClassArray(value);\n        // eslint-disable-next-line @typescript-eslint/no-use-before-define\n        return Result.with({ Err, Ok });\n    },\n    [TypeDefInfo.Set]: (_registry, value) => CodecSet.with(getSubDefArray(value).reduce((result, { index, name }) => {\n        if (!name || !isNumber(index)) {\n            throw new Error('No name found in sub definition');\n        }\n        result[name] = index;\n        return result;\n    }, {}), value.length),\n    [TypeDefInfo.Si]: (registry, value) => getTypeClass(registry, registry.lookup.getTypeDef(value.type)),\n    [TypeDefInfo.Struct]: (_registry, value) => Struct.with(getTypeClassMap(value), value.alias),\n    [TypeDefInfo.Tuple]: (_registry, value) => Tuple.with(getTypeClassArray(value)),\n    [TypeDefInfo.UInt]: (_registry, value) => createInt(UInt, value),\n    [TypeDefInfo.Vec]: (_registry, { sub }) => {\n        if (!sub || Array.isArray(sub)) {\n            throw new Error('Expected type information for vector');\n        }\n        return (sub.type === 'u8'\n            ? Bytes\n            : Vec.with(getTypeDefType(sub)));\n    },\n    [TypeDefInfo.VecFixed]: (_registry, { displayName, length, sub }) => {\n        if (!isNumber(length) || !sub || Array.isArray(sub)) {\n            throw new Error('Expected length & type information for fixed vector');\n        }\n        return (sub.type === 'u8'\n            ? U8aFixed.with((length * 8), displayName)\n            : VecFixed.with(getTypeDefType(sub), length));\n    },\n    [TypeDefInfo.WrapperKeepOpaque]: (_registry, value) => createWithSub(WrapperKeepOpaque, value),\n    [TypeDefInfo.WrapperOpaque]: (_registry, value) => createWithSub(WrapperOpaque, value)\n};\nexport function constructTypeClass(registry, typeDef) {\n    try {\n        const Type = infoMapping[typeDef.info](registry, typeDef);\n        if (!Type) {\n            throw new Error('No class created');\n        }\n        // don't clobber any existing\n        if (!Type.__fallbackType && typeDef.fallbackType) {\n            // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n            // @ts-ignore ...this is the only place we we actually assign this...\n            Type.__fallbackType = typeDef.fallbackType;\n        }\n        return Type;\n    }\n    catch (error) {\n        throw new Error(`Unable to construct class from ${stringify(typeDef)}: ${error.message}`);\n    }\n}\nexport function getTypeClass(registry, typeDef) {\n    return registry.getUnsafe(typeDef.type, false, typeDef);\n}\nexport function createClassUnsafe(registry, type) {\n    return (\n    // just retrieve via name, no creation via typeDef\n    registry.getUnsafe(type) ||\n        // we don't have an existing type, create the class via typeDef\n        getTypeClass(registry, registry.isLookupType(type)\n            ? registry.lookup.getTypeDef(type)\n            : getTypeDef(type)));\n}\n","import { Option } from '@polkadot/types-codec';\nimport { isHex, isU8a, u8aEq, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { createClassUnsafe } from './class.js';\nfunction checkInstance(created, matcher) {\n    const u8a = created.toU8a();\n    const rawType = created.toRawType();\n    const isOk = (\n    // full match, all ok\n    u8aEq(u8a, matcher) ||\n        (\n        // on a length-prefixed type, just check the actual length\n        ['Bytes', 'Text', 'Type'].includes(rawType) &&\n            matcher.length === created.length) ||\n        (\n        // when the created is empty and matcher is also empty, let it slide...\n        created.isEmpty &&\n            matcher.every((v) => !v)));\n    if (!isOk) {\n        throw new Error(`${rawType}:: Decoded input doesn't match input, received ${u8aToHex(matcher, 512)} (${matcher.length} bytes), created ${u8aToHex(u8a, 512)} (${u8a.length} bytes)`);\n    }\n}\nfunction checkPedantic(created, [value]) {\n    if (isU8a(value)) {\n        checkInstance(created, value);\n    }\n    else if (isHex(value)) {\n        checkInstance(created, u8aToU8a(value));\n    }\n}\nfunction initType(registry, Type, params = [], { blockHash, isFallback, isOptional, isPedantic } = {}) {\n    const created = new (isOptional\n        ? Option.with(Type)\n        : Type)(registry, ...params);\n    isPedantic && checkPedantic(created, params);\n    if (blockHash) {\n        created.createdAtHash = createTypeUnsafe(registry, 'BlockHash', [blockHash]);\n    }\n    if (isFallback) {\n        created.isStorageFallback = true;\n    }\n    return created;\n}\nexport function createTypeUnsafe(registry, type, params = [], options = {}) {\n    let Clazz = null;\n    let firstError = null;\n    try {\n        Clazz = createClassUnsafe(registry, type);\n        return initType(registry, Clazz, params, options);\n    }\n    catch (error) {\n        firstError = new Error(`createType(${type}):: ${error.message}`);\n    }\n    if (Clazz?.__fallbackType) {\n        try {\n            Clazz = createClassUnsafe(registry, Clazz.__fallbackType);\n            return initType(registry, Clazz, params, options);\n        }\n        catch {\n            // swallow, we will throw the first error again\n        }\n    }\n    throw firstError;\n}\n","/**\n * @name lazyMethod\n * @description\n * Creates a lazy, on-demand getter for the specific value. Upon get the value will be evaluated.\n */\nexport function lazyMethod(result, item, creator, getName, index = 0) {\n    const name = getName\n        ? getName(item, index)\n        : item.toString();\n    let value;\n    Object.defineProperty(result, name, {\n        // This allows for re-configuration with the embedded defineProperty below\n        // and ensures that on tested browsers and Node, it _will_ be redefined\n        // and thus short-circuited for future access\n        configurable: true,\n        enumerable: true,\n        // Use a function here, we don't want to capture the outer this, i.e.\n        // don't use arrow functions in this context since we have a this inside\n        get: function () {\n            // This check should _always_ be false and unneeded, since we override\n            // with a value below ... however we ensure we are quire vigilant against\n            // all environment failures, so we are rather be safe than sorry\n            if (value === undefined) {\n                value = creator(item, index, this);\n                try {\n                    // re-define the property as a value, next time around this\n                    // getter will only return the computed value\n                    Object.defineProperty(this, name, { value });\n                }\n                catch {\n                    // ignore any errors, since this _should_ not happen due to\n                    // the \"configurable\" property above. But if it ever does\n                    // from here-on we will be the cached value the next time\n                    // around (with a very slight dip in performance)\n                }\n            }\n            return value;\n        }\n    });\n}\n/**\n * @name lazyMethods\n * @description\n * Creates lazy, on-demand getters for the specific values.\n */\nexport function lazyMethods(result, items, creator, getName) {\n    for (let i = 0, count = items.length; i < count; i++) {\n        lazyMethod(result, items[i], creator, getName, i);\n    }\n    return result;\n}\n","import { isFunction } from './is/function.js';\n/**\n * @name assert\n * @summary Checks for a valid test, if not Error is thrown.\n * @description\n * Checks that `test` is a truthy value. If value is falsy (`null`, `undefined`, `false`, ...), it throws an Error with the supplied `message`. When `test` passes, `true` is returned.\n * @example\n * <BR>\n *\n * ```javascript\n * const { assert } from '@polkadot/util';\n *\n * assert(true, 'True should be true'); // passes\n * assert(false, 'False should not be true'); // Error thrown\n * assert(false, () => 'message'); // Error with 'message'\n * ```\n */\nexport function assert(condition, message) {\n    if (!condition) {\n        throw new Error(isFunction(message)\n            ? message()\n            : message);\n    }\n}\n/**\n * @name assertReturn\n * @description Returns when the value is not undefined/null, otherwise throws assertion error\n */\nexport function assertReturn(value, message) {\n    assert(value !== undefined && value !== null, message);\n    return value;\n}\n/**\n * @name assertUnreachable\n * @description An assertion helper that ensures all codepaths are followed\n */\nexport function assertUnreachable(x) {\n    throw new Error(`This codepath should be unreachable. Unhandled input: ${x}`);\n}\n","export const emptyCheck = {\n    extrinsic: {},\n    payload: {}\n};\n","import { emptyCheck } from './emptyCheck.js';\nconst CheckMortality = {\n    extrinsic: {\n        era: 'ExtrinsicEra'\n    },\n    payload: {\n        blockHash: 'Hash'\n    }\n};\nexport const substrate = {\n    ChargeTransactionPayment: {\n        extrinsic: {\n            tip: 'Compact<Balance>'\n        },\n        payload: {}\n    },\n    CheckBlockGasLimit: emptyCheck,\n    CheckEra: CheckMortality,\n    CheckGenesis: {\n        extrinsic: {},\n        payload: {\n            genesisHash: 'Hash'\n        }\n    },\n    CheckMortality,\n    CheckNonZeroSender: emptyCheck,\n    CheckNonce: {\n        extrinsic: {\n            nonce: 'Compact<Index>'\n        },\n        payload: {}\n    },\n    CheckSpecVersion: {\n        extrinsic: {},\n        payload: {\n            specVersion: 'u32'\n        }\n    },\n    CheckTxVersion: {\n        extrinsic: {},\n        payload: {\n            transactionVersion: 'u32'\n        }\n    },\n    CheckVersion: {\n        extrinsic: {},\n        payload: {\n            specVersion: 'u32'\n        }\n    },\n    CheckWeight: emptyCheck,\n    LockStakingStatus: emptyCheck,\n    ValidateEquivocationReport: emptyCheck\n};\n","import { objectSpread } from '@polkadot/util';\nimport { polkadot } from './polkadot.js';\nimport { shell } from './shell.js';\nimport { statemint } from './statemint.js';\nimport { substrate } from './substrate.js';\nexport const allExtensions = objectSpread({}, substrate, polkadot, shell, statemint);\nexport const fallbackExtensions = [\n    'CheckVersion',\n    'CheckGenesis',\n    'CheckEra',\n    'CheckNonce',\n    'CheckWeight',\n    'ChargeTransactionPayment',\n    'CheckBlockGasLimit'\n];\nexport function findUnknownExtensions(extensions, userExtensions = {}) {\n    const names = [...Object.keys(allExtensions), ...Object.keys(userExtensions)];\n    return extensions.filter((k) => !names.includes(k));\n}\nexport function expandExtensionTypes(extensions, type, userExtensions = {}) {\n    return extensions\n        // Always allow user extensions first - these should provide overrides\n        .map((k) => userExtensions[k] || allExtensions[k])\n        .filter((info) => !!info)\n        .reduce((result, info) => objectSpread(result, info[type]), {});\n}\n","import { emptyCheck } from './emptyCheck.js';\nexport const polkadot = {\n    LimitParathreadCommits: emptyCheck,\n    OnlyStakingAndClaims: emptyCheck,\n    PrevalidateAttests: emptyCheck,\n    RestrictFunctionality: emptyCheck,\n    TransactionCallFilter: emptyCheck,\n    ValidateDoubleVoteReports: emptyCheck\n};\n","import { emptyCheck } from './emptyCheck.js';\nexport const shell = {\n    DisallowSigned: emptyCheck\n};\n","export const statemint = {\n    ChargeAssetTxPayment: {\n        extrinsic: {\n            tip: 'Compact<Balance>',\n            // eslint-disable-next-line sort-keys\n            assetId: 'Option<AssetId>'\n        },\n        payload: {}\n    }\n};\n","import { Null, Struct, Tuple } from '@polkadot/types-codec';\nimport { objectProperties, objectSpread } from '@polkadot/util';\n/** @internal */\nfunction decodeEvent(registry, value) {\n    if (!value?.length) {\n        return { DataType: Null };\n    }\n    const index = value.subarray(0, 2);\n    return {\n        DataType: registry.findMetaEvent(index),\n        value: {\n            data: value.subarray(2),\n            index\n        }\n    };\n}\n/**\n * @name GenericEventData\n * @description\n * Wrapper for the actual data that forms part of an [[Event]]\n */\nexport class GenericEventData extends Tuple {\n    constructor(registry, value, meta, section = '<unknown>', method = '<unknown>') {\n        const fields = meta?.fields || [];\n        super(registry, fields.map(({ type }) => registry.createLookupType(type)), value);\n        this.__internal__names = null;\n        this.__internal__meta = meta;\n        this.__internal__method = method;\n        this.__internal__section = section;\n        this.__internal__typeDef = fields.map(({ type }) => registry.lookup.getTypeDef(type));\n        const names = fields\n            .map(({ name }) => registry.lookup.sanitizeField(name)[0])\n            .filter((n) => !!n);\n        if (names.length === fields.length) {\n            this.__internal__names = names;\n            objectProperties(this, names, (_, i) => this[i]);\n        }\n    }\n    /**\n     * @description The wrapped [[EventMetadata]]\n     */\n    get meta() {\n        return this.__internal__meta;\n    }\n    /**\n     * @description The method as a string\n     */\n    get method() {\n        return this.__internal__method;\n    }\n    /**\n     * @description The field names (as available)\n     */\n    get names() {\n        return this.__internal__names;\n    }\n    /**\n     * @description The section as a string\n     */\n    get section() {\n        return this.__internal__section;\n    }\n    /**\n     * @description The [[TypeDef]] for this event\n     */\n    get typeDef() {\n        return this.__internal__typeDef;\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        if (this.__internal__names !== null) {\n            const json = {};\n            for (let i = 0, count = this.__internal__names.length; i < count; i++) {\n                json[this.__internal__names[i]] = this[i].toHuman(isExtended);\n            }\n            return json;\n        }\n        return super.toHuman(isExtended);\n    }\n}\n/**\n * @name GenericEvent\n * @description\n * A representation of a system event. These are generated via the [[Metadata]] interfaces and\n * specific to a specific Substrate runtime\n */\nexport class GenericEvent extends Struct {\n    // Currently we _only_ decode from Uint8Array, since we expect it to\n    // be used via EventRecord\n    constructor(registry, _value) {\n        const { DataType, value } = decodeEvent(registry, _value);\n        super(registry, {\n            index: 'EventId',\n            // eslint-disable-next-line sort-keys\n            data: DataType\n        }, value);\n    }\n    /**\n     * @description The wrapped [[EventData]]\n     */\n    get data() {\n        return this.getT('data');\n    }\n    /**\n     * @description The [[EventId]], identifying the raw event\n     */\n    get index() {\n        return this.getT('index');\n    }\n    /**\n     * @description The [[EventMetadata]] with the documentation\n     */\n    get meta() {\n        return this.data.meta;\n    }\n    /**\n     * @description The method string identifying the event\n     */\n    get method() {\n        return this.data.method;\n    }\n    /**\n     * @description The section string identifying the event\n     */\n    get section() {\n        return this.data.section;\n    }\n    /**\n     * @description The [[TypeDef]] for the event\n     */\n    get typeDef() {\n        return this.data.typeDef;\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExpanded) {\n        return objectSpread({\n            method: this.method,\n            section: this.section\n        }, isExpanded\n            ? { docs: this.meta.docs.map((d) => d.toString()) }\n            : null, super.toHuman(isExpanded));\n    }\n}\n","/**\n * @name Base\n * @description A type extends the Base class, when it holds a value\n */\nexport class AbstractBase {\n    constructor(registry, value, initialU8aLength) {\n        this.initialU8aLength = initialU8aLength;\n        this.__internal__raw = value;\n        this.registry = registry;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return this.toU8a().length;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description returns the inner (wrapped value)\n     */\n    get inner() {\n        return this.__internal__raw;\n    }\n    /**\n     * @description Checks if the value is an empty value\n     */\n    get isEmpty() {\n        return this.__internal__raw.isEmpty;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return this.__internal__raw.eq(other);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return this.__internal__raw.inspect();\n    }\n    /**\n     * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation\n     */\n    toHex(isLe) {\n        return this.__internal__raw.toHex(isLe);\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        return this.__internal__raw.toHuman(isExtended);\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.__internal__raw.toJSON();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.__internal__raw.toPrimitive();\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return this.__internal__raw.toString();\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        return this.__internal__raw.toU8a(isBare);\n    }\n    /**\n     * @description Returns the inner wrapped value (equivalent to valueOf)\n     */\n    unwrap() {\n        return this.__internal__raw;\n    }\n    /**\n     * @description Returns the inner wrapped value\n     */\n    valueOf() {\n        return this.__internal__raw;\n    }\n}\n","import { Struct } from '@polkadot/types-codec';\nimport { isU8a } from '@polkadot/util';\nexport const EXTRINSIC_VERSION = 4;\n/**\n * @name GenericExtrinsicV4\n * @description\n * The third generation of compact extrinsics\n */\nexport class GenericExtrinsicV4 extends Struct {\n    constructor(registry, value, { isSigned } = {}) {\n        super(registry, {\n            signature: 'ExtrinsicSignatureV4',\n            // eslint-disable-next-line sort-keys\n            method: 'Call'\n        }, GenericExtrinsicV4.decodeExtrinsic(registry, value, isSigned));\n    }\n    /** @internal */\n    static decodeExtrinsic(registry, value, isSigned = false) {\n        if (value instanceof GenericExtrinsicV4) {\n            return value;\n        }\n        else if (value instanceof registry.createClassUnsafe('Call')) {\n            return { method: value };\n        }\n        else if (isU8a(value)) {\n            // here we decode manually since we need to pull through the version information\n            const signature = registry.createTypeUnsafe('ExtrinsicSignatureV4', [value, { isSigned }]);\n            const method = registry.createTypeUnsafe('Call', [value.subarray(signature.encodedLength)]);\n            return {\n                method,\n                signature\n            };\n        }\n        return value || {};\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return this.toU8a().length;\n    }\n    /**\n     * @description The [[Call]] this extrinsic wraps\n     */\n    get method() {\n        return this.getT('method');\n    }\n    /**\n     * @description The [[ExtrinsicSignatureV4]]\n     */\n    get signature() {\n        return this.getT('signature');\n    }\n    /**\n     * @description The version for the signature\n     */\n    get version() {\n        return EXTRINSIC_VERSION;\n    }\n    /**\n     * @description Add an [[ExtrinsicSignatureV4]] to the extrinsic (already generated)\n     */\n    addSignature(signer, signature, payload) {\n        this.signature.addSignature(signer, signature, payload);\n        return this;\n    }\n    /**\n     * @description Sign the extrinsic with a specific keypair\n     */\n    sign(account, options) {\n        this.signature.sign(this.method, account, options);\n        return this;\n    }\n    /**\n     * @describe Adds a fake signature to the extrinsic\n     */\n    signFake(signer, options) {\n        this.signature.signFake(this.method, signer, options);\n        return this;\n    }\n}\n","export const BIT_SIGNED = 0b10000000;\nexport const BIT_UNSIGNED = 0;\nexport const EMPTY_U8A = new Uint8Array();\nexport const DEFAULT_VERSION = 4;\nexport const IMMORTAL_ERA = new Uint8Array([0]);\nexport const UNMASK_VERSION = 0b01111111;\n","import { AbstractBase } from '@polkadot/types-codec';\nimport { compactAddLength, compactFromU8a, compactToU8a, isHex, isU8a, objectProperty, objectSpread, u8aConcat, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { EXTRINSIC_VERSION as LATEST_EXTRINSIC_VERSION } from './v4/Extrinsic.js';\nimport { BIT_SIGNED, BIT_UNSIGNED, DEFAULT_VERSION, UNMASK_VERSION } from './constants.js';\nconst VERSIONS = [\n    'ExtrinsicUnknown',\n    'ExtrinsicUnknown',\n    'ExtrinsicUnknown',\n    'ExtrinsicUnknown',\n    'ExtrinsicV4'\n];\nexport { LATEST_EXTRINSIC_VERSION };\n/** @internal */\nfunction newFromValue(registry, value, version) {\n    if (value instanceof GenericExtrinsic) {\n        return value.unwrap();\n    }\n    const isSigned = (version & BIT_SIGNED) === BIT_SIGNED;\n    const type = VERSIONS[version & UNMASK_VERSION] || VERSIONS[0];\n    // we cast here since the VERSION definition is incredibly broad - we don't have a\n    // slice for \"only add extrinsic types\", and more string definitions become unwieldy\n    return registry.createTypeUnsafe(type, [value, { isSigned, version }]);\n}\n/** @internal */\nfunction decodeExtrinsic(registry, value, version = DEFAULT_VERSION) {\n    if (isU8a(value) || Array.isArray(value) || isHex(value)) {\n        return decodeU8a(registry, u8aToU8a(value), version);\n    }\n    else if (value instanceof registry.createClassUnsafe('Call')) {\n        return newFromValue(registry, { method: value }, version);\n    }\n    return newFromValue(registry, value, version);\n}\n/** @internal */\nfunction decodeU8a(registry, value, version) {\n    if (!value.length) {\n        return newFromValue(registry, new Uint8Array(), version);\n    }\n    const [offset, length] = compactFromU8a(value);\n    const total = offset + length.toNumber();\n    if (total > value.length) {\n        throw new Error(`Extrinsic: length less than remainder, expected at least ${total}, found ${value.length}`);\n    }\n    const data = value.subarray(offset, total);\n    return newFromValue(registry, data.subarray(1), data[0]);\n}\nclass ExtrinsicBase extends AbstractBase {\n    constructor(registry, value, initialU8aLength) {\n        super(registry, value, initialU8aLength);\n        const signKeys = Object.keys(registry.getSignedExtensionTypes());\n        const getter = (key) => this.inner.signature[key];\n        // This is on the abstract class, ensuring that hasOwnProperty operates\n        // correctly, i.e. it needs to be on the base class exposing it\n        for (let i = 0, count = signKeys.length; i < count; i++) {\n            objectProperty(this, signKeys[i], getter);\n        }\n    }\n    /**\n     * @description The arguments passed to for the call, exposes args so it is compatible with [[Call]]\n     */\n    get args() {\n        return this.method.args;\n    }\n    /**\n     * @description The argument definitions, compatible with [[Call]]\n     */\n    get argsDef() {\n        return this.method.argsDef;\n    }\n    /**\n     * @description The actual `[sectionIndex, methodIndex]` as used in the Call\n     */\n    get callIndex() {\n        return this.method.callIndex;\n    }\n    /**\n     * @description The actual data for the Call\n     */\n    get data() {\n        return this.method.data;\n    }\n    /**\n     * @description The era for this extrinsic\n     */\n    get era() {\n        return this.inner.signature.era;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return this.toU8a().length;\n    }\n    /**\n     * @description `true` id the extrinsic is signed\n     */\n    get isSigned() {\n        return this.inner.signature.isSigned;\n    }\n    /**\n     * @description The length of the actual data, excluding prefix\n     */\n    get length() {\n        return this.toU8a(true).length;\n    }\n    /**\n     * @description The [[FunctionMetadataLatest]] that describes the extrinsic\n     */\n    get meta() {\n        return this.method.meta;\n    }\n    /**\n     * @description The [[Call]] this extrinsic wraps\n     */\n    get method() {\n        return this.inner.method;\n    }\n    /**\n     * @description The nonce for this extrinsic\n     */\n    get nonce() {\n        return this.inner.signature.nonce;\n    }\n    /**\n     * @description The actual [[EcdsaSignature]], [[Ed25519Signature]] or [[Sr25519Signature]]\n     */\n    get signature() {\n        return this.inner.signature.signature;\n    }\n    /**\n     * @description The [[Address]] that signed\n     */\n    get signer() {\n        return this.inner.signature.signer;\n    }\n    /**\n     * @description Forwards compat\n     */\n    get tip() {\n        return this.inner.signature.tip;\n    }\n    /**\n     * @description Returns the raw transaction version (not flagged with signing information)\n    */\n    get type() {\n        return this.inner.version;\n    }\n    get inner() {\n        return this.unwrap();\n    }\n    /**\n     * @description Returns the encoded version flag\n    */\n    get version() {\n        return this.type | (this.isSigned ? BIT_SIGNED : BIT_UNSIGNED);\n    }\n    /**\n     * @description Checks if the source matches this in type\n     */\n    is(other) {\n        return this.method.is(other);\n    }\n    unwrap() {\n        return super.unwrap();\n    }\n}\n/**\n * @name GenericExtrinsic\n * @description\n * Representation of an Extrinsic in the system. It contains the actual call,\n * (optional) signature and encodes with an actual length prefix\n *\n * {@link https://github.com/paritytech/wiki/blob/master/Extrinsic.md#the-extrinsic-format-for-node}.\n *\n * Can be:\n * - signed, to create a transaction\n * - left as is, to create an inherent\n */\nexport class GenericExtrinsic extends ExtrinsicBase {\n    constructor(registry, value, { version } = {}) {\n        super(registry, decodeExtrinsic(registry, value, version));\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        if (!this.__internal__hashCache) {\n            this.__internal__hashCache = super.hash;\n        }\n        return this.__internal__hashCache;\n    }\n    /**\n     * @description Injects an already-generated signature into the extrinsic\n     */\n    addSignature(signer, signature, payload) {\n        this.inner.addSignature(signer, signature, payload);\n        this.__internal__hashCache = undefined;\n        return this;\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        const encoded = u8aConcat(...this.toU8aInner());\n        return {\n            inner: this.isSigned\n                ? this.inner.inspect().inner\n                : this.inner.method.inspect().inner,\n            outer: [compactToU8a(encoded.length), new Uint8Array([this.version])]\n        };\n    }\n    /**\n     * @description Sign the extrinsic with a specific keypair\n     */\n    sign(account, options) {\n        this.inner.sign(account, options);\n        this.__internal__hashCache = undefined;\n        return this;\n    }\n    /**\n     * @describe Adds a fake signature to the extrinsic\n     */\n    signFake(signer, options) {\n        this.inner.signFake(signer, options);\n        this.__internal__hashCache = undefined;\n        return this;\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex(isBare) {\n        return u8aToHex(this.toU8a(isBare));\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExpanded) {\n        return objectSpread({}, {\n            isSigned: this.isSigned,\n            method: this.method.toHuman(isExpanded)\n        }, this.isSigned\n            ? {\n                era: this.era.toHuman(isExpanded),\n                nonce: this.nonce.toHuman(isExpanded),\n                signature: this.signature.toHex(),\n                signer: this.signer.toHuman(isExpanded),\n                tip: this.tip.toHuman(isExpanded)\n            }\n            : null);\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.toHex();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Extrinsic';\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value is not length-prefixed\n     */\n    toU8a(isBare) {\n        const encoded = u8aConcat(...this.toU8aInner());\n        return isBare\n            ? encoded\n            : compactAddLength(encoded);\n    }\n    toU8aInner() {\n        // we do not apply bare to the internal values, rather this only determines out length addition,\n        // where we strip all lengths this creates an extrinsic that cannot be decoded\n        return [\n            new Uint8Array([this.version]),\n            this.inner.toU8a()\n        ];\n    }\n}\nGenericExtrinsic.LATEST_EXTRINSIC_VERSION = LATEST_EXTRINSIC_VERSION;\n","import { UInt } from '../base/UInt.js';\n/**\n * @name u64\n * @description\n * A 64-bit unsigned integer\n */\nexport class u64 extends UInt.with(64) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__UIntType = 'u64';\n    }\n}\n","import { Enum, Raw, Tuple, U64 } from '@polkadot/types-codec';\nimport { bnToBn, formatNumber, hexToU8a, isHex, isObject, isU8a, u8aToBn, u8aToU8a } from '@polkadot/util';\nimport { IMMORTAL_ERA } from './constants.js';\nfunction getTrailingZeros(period) {\n    const binary = period.toString(2);\n    let index = 0;\n    while (binary[binary.length - 1 - index] === '0') {\n        index++;\n    }\n    return index;\n}\n/** @internal */\nfunction decodeMortalEra(registry, value) {\n    if (isU8a(value) || isHex(value) || Array.isArray(value)) {\n        return decodeMortalU8a(registry, u8aToU8a(value));\n    }\n    else if (!value) {\n        return [new U64(registry), new U64(registry)];\n    }\n    else if (isObject(value)) {\n        return decodeMortalObject(registry, value);\n    }\n    throw new Error('Invalid data passed to Mortal era');\n}\n/** @internal */\nfunction decodeMortalObject(registry, value) {\n    const { current, period } = value;\n    let calPeriod = Math.pow(2, Math.ceil(Math.log2(period)));\n    calPeriod = Math.min(Math.max(calPeriod, 4), 1 << 16);\n    const phase = current % calPeriod;\n    const quantizeFactor = Math.max(calPeriod >> 12, 1);\n    const quantizedPhase = phase / quantizeFactor * quantizeFactor;\n    return [new U64(registry, calPeriod), new U64(registry, quantizedPhase)];\n}\n/** @internal */\nfunction decodeMortalU8a(registry, value) {\n    if (value.length === 0) {\n        return [new U64(registry), new U64(registry)];\n    }\n    const first = u8aToBn(value.subarray(0, 1)).toNumber();\n    const second = u8aToBn(value.subarray(1, 2)).toNumber();\n    const encoded = first + (second << 8);\n    const period = 2 << (encoded % (1 << 4));\n    const quantizeFactor = Math.max(period >> 12, 1);\n    const phase = (encoded >> 4) * quantizeFactor;\n    if (period < 4 || phase >= period) {\n        throw new Error('Invalid data passed to Mortal era');\n    }\n    return [new U64(registry, period), new U64(registry, phase)];\n}\n/** @internal */\nfunction decodeExtrinsicEra(value = new Uint8Array()) {\n    if (isU8a(value)) {\n        return (!value.length || value[0] === 0)\n            ? new Uint8Array([0])\n            : new Uint8Array([1, value[0], value[1]]);\n    }\n    else if (!value) {\n        return new Uint8Array([0]);\n    }\n    else if (value instanceof GenericExtrinsicEra) {\n        return decodeExtrinsicEra(value.toU8a());\n    }\n    else if (isHex(value)) {\n        return decodeExtrinsicEra(hexToU8a(value));\n    }\n    else if (isObject(value)) {\n        const entries = Object.entries(value).map(([k, v]) => [k.toLowerCase(), v]);\n        const mortal = entries.find(([k]) => k.toLowerCase() === 'mortalera');\n        const immortal = entries.find(([k]) => k.toLowerCase() === 'immortalera');\n        // this is to de-serialize from JSON\n        return mortal\n            ? { MortalEra: mortal[1] }\n            : immortal\n                ? { ImmortalEra: immortal[1] }\n                : { MortalEra: value };\n    }\n    throw new Error('Invalid data passed to Era');\n}\n/**\n * @name ImmortalEra\n * @description\n * The ImmortalEra for an extrinsic\n */\nexport class ImmortalEra extends Raw {\n    constructor(registry, _value) {\n        // For immortals, we always provide the known value (i.e. treated as a\n        // constant no matter how it is constructed - it is a fixed structure)\n        super(registry, IMMORTAL_ERA);\n    }\n}\n/**\n * @name MortalEra\n * @description\n * The MortalEra for an extrinsic, indicating period and phase\n */\nexport class MortalEra extends Tuple {\n    constructor(registry, value) {\n        super(registry, {\n            period: U64,\n            phase: U64\n        }, decodeMortalEra(registry, value));\n    }\n    /**\n     * @description Encoded length for mortals occupy 2 bytes, different from the actual Tuple since it is encoded. This is a shortcut fro `toU8a().length`\n     */\n    get encodedLength() {\n        return 2 | 0;\n    }\n    /**\n     * @description The period of this Mortal wraps as a [[U64]]\n     */\n    get period() {\n        return this[0];\n    }\n    /**\n     * @description The phase of this Mortal wraps as a [[U64]]\n     */\n    get phase() {\n        return this[1];\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return {\n            period: formatNumber(this.period),\n            phase: formatNumber(this.phase)\n        };\n    }\n    /**\n     * @description Returns a JSON representation of the actual value\n     */\n    toJSON() {\n        return this.toHex();\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the parity-codec specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     * Period and phase are encoded:\n     *   - The period of validity from the block hash found in the signing material.\n     *   - The phase in the period that this transaction's lifetime begins (and, importantly,\n     *     implies which block hash is included in the signature material). If the `period` is\n     *     greater than 1 << 12, then it will be a factor of the times greater than 1<<12 that\n     *     `period` is.\n     */\n    toU8a(_isBare) {\n        const period = this.period.toNumber();\n        const encoded = Math.min(15, Math.max(1, getTrailingZeros(period) - 1)) + ((this.phase.toNumber() / Math.max(period >> 12, 1)) << 4);\n        return new Uint8Array([\n            encoded & 0xff,\n            encoded >> 8\n        ]);\n    }\n    /**\n     * @description Get the block number of the start of the era whose properties this object describes that `current` belongs to.\n     */\n    birth(current) {\n        const phase = this.phase.toNumber();\n        const period = this.period.toNumber();\n        // FIXME No toNumber() here\n        return (~~((Math.max(bnToBn(current).toNumber(), phase) - phase) / period) * period) + phase;\n    }\n    /**\n     * @description Get the block number of the first block at which the era has ended.\n     */\n    death(current) {\n        // FIXME No toNumber() here\n        return this.birth(current) + this.period.toNumber();\n    }\n}\n/**\n * @name GenericExtrinsicEra\n * @description\n * The era for an extrinsic, indicating either a mortal or immortal extrinsic\n */\nexport class GenericExtrinsicEra extends Enum {\n    constructor(registry, value) {\n        super(registry, {\n            ImmortalEra,\n            MortalEra\n        }, decodeExtrinsicEra(value));\n    }\n    /**\n     * @description Override the encoded length method\n     */\n    get encodedLength() {\n        return this.isImmortalEra\n            ? this.asImmortalEra.encodedLength\n            : this.asMortalEra.encodedLength;\n    }\n    /**\n     * @description Returns the item as a [[ImmortalEra]]\n     */\n    get asImmortalEra() {\n        if (!this.isImmortalEra) {\n            throw new Error(`Cannot convert '${this.type}' via asImmortalEra`);\n        }\n        return this.inner;\n    }\n    /**\n     * @description Returns the item as a [[MortalEra]]\n     */\n    get asMortalEra() {\n        if (!this.isMortalEra) {\n            throw new Error(`Cannot convert '${this.type}' via asMortalEra`);\n        }\n        return this.inner;\n    }\n    /**\n     * @description `true` if Immortal\n     */\n    get isImmortalEra() {\n        return this.index === 0;\n    }\n    /**\n     * @description `true` if Mortal\n     */\n    get isMortalEra() {\n        return this.index > 0;\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the parity-codec specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        return this.isMortalEra\n            ? this.asMortalEra.toU8a(isBare)\n            : this.asImmortalEra.toU8a(isBare);\n    }\n}\n","import { AbstractBase } from '@polkadot/types-codec';\nimport { u8aToHex } from '@polkadot/util';\nimport { DEFAULT_VERSION } from './constants.js';\nconst VERSIONS = [\n    'ExtrinsicPayloadUnknown',\n    'ExtrinsicPayloadUnknown',\n    'ExtrinsicPayloadUnknown',\n    'ExtrinsicPayloadUnknown',\n    'ExtrinsicPayloadV4'\n];\n/** @internal */\nfunction decodeExtrinsicPayload(registry, value, version = DEFAULT_VERSION) {\n    if (value instanceof GenericExtrinsicPayload) {\n        return value.unwrap();\n    }\n    return registry.createTypeUnsafe(VERSIONS[version] || VERSIONS[0], [value, { version }]);\n}\n/**\n * @name GenericExtrinsicPayload\n * @description\n * A signing payload for an [[Extrinsic]]. For the final encoding, it is variable length based\n * on the contents included\n */\nexport class GenericExtrinsicPayload extends AbstractBase {\n    constructor(registry, value, { version } = {}) {\n        super(registry, decodeExtrinsicPayload(registry, value, version));\n    }\n    /**\n     * @description The block [[BlockHash]] the signature applies to (mortal/immortal)\n     */\n    get blockHash() {\n        return this.inner.blockHash;\n    }\n    /**\n     * @description The [[ExtrinsicEra]]\n     */\n    get era() {\n        return this.inner.era;\n    }\n    /**\n     * @description The genesis block [[BlockHash]] the signature applies to\n     */\n    get genesisHash() {\n        // NOTE only v3+\n        return this.inner.genesisHash || this.registry.createTypeUnsafe('Hash', []);\n    }\n    /**\n     * @description The [[Bytes]] contained in the payload\n     */\n    get method() {\n        return this.inner.method;\n    }\n    /**\n     * @description The [[Index]]\n     */\n    get nonce() {\n        return this.inner.nonce;\n    }\n    /**\n     * @description The specVersion as a [[u32]] for this payload\n     */\n    get specVersion() {\n        // NOTE only v3+\n        return this.inner.specVersion || this.registry.createTypeUnsafe('u32', []);\n    }\n    /**\n     * @description The [[Balance]]\n     */\n    get tip() {\n        // NOTE from v2+\n        return this.inner.tip || this.registry.createTypeUnsafe('Compact<Balance>', []);\n    }\n    /**\n     * @description The transaction version as a [[u32]] for this payload\n     */\n    get transactionVersion() {\n        // NOTE only v4+\n        return this.inner.transactionVersion || this.registry.createTypeUnsafe('u32', []);\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return this.inner.eq(other);\n    }\n    /**\n     * @description Sign the payload with the keypair\n     */\n    sign(signerPair) {\n        const signature = this.inner.sign(signerPair);\n        // This is extensible, so we could quite readily extend to send back extra\n        // information, such as for instance the payload, i.e. `payload: this.toHex()`\n        // For the case here we sign via the extrinsic, we ignore the return, so generally\n        // this is applicable for external signing\n        return {\n            signature: u8aToHex(signature)\n        };\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExtended) {\n        return this.inner.toHuman(isExtended);\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.toHex();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'ExtrinsicPayload';\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return this.toHex();\n    }\n    /**\n     * @description Returns a serialized u8a form\n     */\n    toU8a(isBare) {\n        // call our parent, with only the method stripped\n        return super.toU8a(isBare ? { method: true } : false);\n    }\n}\n","import { Struct } from '@polkadot/types-codec';\n/**\n * @name GenericExtrinsicPayloadUnknown\n * @description\n * A default handler for payloads where the version is not known (default throw)\n */\nexport class GenericExtrinsicPayloadUnknown extends Struct {\n    constructor(registry, _value, { version = 0 } = {}) {\n        super(registry, {});\n        throw new Error(`Unsupported extrinsic payload version ${version}`);\n    }\n}\n","import { Struct } from '@polkadot/types-codec';\nimport { UNMASK_VERSION } from './constants.js';\n/**\n * @name GenericExtrinsicUnknown\n * @description\n * A default handler for extrinsics where the version is not known (default throw)\n */\nexport class GenericExtrinsicUnknown extends Struct {\n    constructor(registry, _value, { isSigned = false, version = 0 } = {}) {\n        super(registry, {});\n        throw new Error(`Unsupported ${isSigned ? '' : 'un'}signed extrinsic version ${version & UNMASK_VERSION}`);\n    }\n}\n","import { Option, Struct } from '@polkadot/types-codec';\nimport { objectProperty, objectSpread, u8aToHex } from '@polkadot/util';\nconst knownTypes = {\n    address: 'Address',\n    blockHash: 'Hash',\n    blockNumber: 'BlockNumber',\n    era: 'ExtrinsicEra',\n    genesisHash: 'Hash',\n    method: 'Call',\n    nonce: 'Compact<Index>',\n    runtimeVersion: 'RuntimeVersion',\n    signedExtensions: 'Vec<Text>',\n    tip: 'Compact<Balance>',\n    version: 'u8'\n};\n/**\n * @name GenericSignerPayload\n * @description\n * A generic signer payload that can be used for serialization between API and signer\n */\nexport class GenericSignerPayload extends Struct {\n    constructor(registry, value) {\n        const extensionTypes = objectSpread({}, registry.getSignedExtensionTypes(), registry.getSignedExtensionExtra());\n        super(registry, objectSpread({}, extensionTypes, knownTypes), value);\n        this.__internal__extraTypes = {};\n        const getter = (key) => this.get(key);\n        // add all extras that are not in the base types\n        for (const [key, type] of Object.entries(extensionTypes)) {\n            if (!knownTypes[key]) {\n                this.__internal__extraTypes[key] = type;\n            }\n            objectProperty(this, key, getter);\n        }\n    }\n    get address() {\n        return this.getT('address');\n    }\n    get blockHash() {\n        return this.getT('blockHash');\n    }\n    get blockNumber() {\n        return this.getT('blockNumber');\n    }\n    get era() {\n        return this.getT('era');\n    }\n    get genesisHash() {\n        return this.getT('genesisHash');\n    }\n    get method() {\n        return this.getT('method');\n    }\n    get nonce() {\n        return this.getT('nonce');\n    }\n    get runtimeVersion() {\n        return this.getT('runtimeVersion');\n    }\n    get signedExtensions() {\n        return this.getT('signedExtensions');\n    }\n    get tip() {\n        return this.getT('tip');\n    }\n    get version() {\n        return this.getT('version');\n    }\n    /**\n     * @description Creates an representation of the structure as an ISignerPayload JSON\n     */\n    toPayload() {\n        const result = {};\n        const keys = Object.keys(this.__internal__extraTypes);\n        // add any explicit overrides we may have\n        for (let i = 0, count = keys.length; i < count; i++) {\n            const key = keys[i];\n            const value = this.getT(key);\n            // Don't include Option.isNone\n            if (!(value instanceof Option) || value.isSome) {\n                // NOTE In the spread below we convert (mostly) to Hex to align\n                // with the typings. In the case of \"unknown\" fields, we use the\n                // primitive toJSON conversion (which is serializable). Technically\n                // we can include isNone in here as well (\"null\" is allowed), however\n                // for empty fields we just skip it completely (historical compat)\n                result[key] = value.toJSON();\n            }\n        }\n        return objectSpread(result, {\n            // the known defaults as managed explicitly and has different\n            // formatting in cases, e.g. we mostly expose a hex format here\n            address: this.address.toString(),\n            blockHash: this.blockHash.toHex(),\n            blockNumber: this.blockNumber.toHex(),\n            era: this.era.toHex(),\n            genesisHash: this.genesisHash.toHex(),\n            method: this.method.toHex(),\n            nonce: this.nonce.toHex(),\n            signedExtensions: this.signedExtensions.map((e) => e.toString()),\n            specVersion: this.runtimeVersion.specVersion.toHex(),\n            tip: this.tip.toHex(),\n            transactionVersion: this.runtimeVersion.transactionVersion.toHex(),\n            version: this.version.toNumber()\n        });\n    }\n    /**\n     * @description Creates a representation of the payload in raw Exrinsic form\n     */\n    toRaw() {\n        const payload = this.toPayload();\n        const data = u8aToHex(this.registry\n            .createTypeUnsafe('ExtrinsicPayload', [payload, { version: payload.version }])\n            // NOTE Explicitly pass the bare flag so the method is encoded un-prefixed (non-decodable, for signing only)\n            .toU8a({ method: true }));\n        return {\n            address: payload.address,\n            data,\n            type: 'payload'\n        };\n    }\n}\n","import { Enum, Struct } from '@polkadot/types-codec';\nimport { objectSpread } from '@polkadot/util';\nimport { sign } from '../util.js';\n/**\n * @name GenericExtrinsicPayloadV4\n * @description\n * A signing payload for an [[Extrinsic]]. For the final encoding, it is\n * variable length based on the contents included\n */\nexport class GenericExtrinsicPayloadV4 extends Struct {\n    constructor(registry, value) {\n        super(registry, objectSpread({ method: 'Bytes' }, registry.getSignedExtensionTypes(), registry.getSignedExtensionExtra()), value);\n        // Do detection for the type of extrinsic, in the case of MultiSignature\n        // this is an enum, in the case of AnySignature, this is a Hash only\n        // (which may be 64 or 65 bytes)\n        this.__internal__signOptions = {\n            withType: registry.createTypeUnsafe('ExtrinsicSignature', []) instanceof Enum\n        };\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return super.inspect({ method: true });\n    }\n    /**\n     * @description The block [[BlockHash]] the signature applies to (mortal/immortal)\n     */\n    get blockHash() {\n        return this.getT('blockHash');\n    }\n    /**\n     * @description The [[ExtrinsicEra]]\n     */\n    get era() {\n        return this.getT('era');\n    }\n    /**\n     * @description The genesis [[BlockHash]] the signature applies to (mortal/immortal)\n     */\n    get genesisHash() {\n        return this.getT('genesisHash');\n    }\n    /**\n     * @description The [[Bytes]] contained in the payload\n     */\n    get method() {\n        return this.getT('method');\n    }\n    /**\n     * @description The [[Index]]\n     */\n    get nonce() {\n        return this.getT('nonce');\n    }\n    /**\n     * @description The specVersion for this signature\n     */\n    get specVersion() {\n        return this.getT('specVersion');\n    }\n    /**\n     * @description The tip [[Balance]]\n     */\n    get tip() {\n        return this.getT('tip');\n    }\n    /**\n     * @description The transactionVersion for this signature\n     */\n    get transactionVersion() {\n        return this.getT('transactionVersion');\n    }\n    /**\n     * @description The (optional) asset id for this signature for chains that support transaction fees in assets\n     */\n    get assetId() {\n        return this.getT('assetId');\n    }\n    /**\n     * @description Sign the payload with the keypair\n     */\n    sign(signerPair) {\n        // NOTE The `toU8a({ method: true })` argument is absolutely critical, we\n        // don't want the method (Bytes) to have the length prefix included. This\n        // means that the data-as-signed is un-decodable, but is also doesn't need\n        // the extra information, only the pure data (and is not decoded) ...\n        // The same applies to V1..V3, if we have a V5, carry this comment\n        return sign(this.registry, signerPair, this.toU8a({ method: true }), this.__internal__signOptions);\n    }\n}\n","export function sign(registry, signerPair, u8a, options) {\n    const encoded = u8a.length > 256\n        ? registry.hash(u8a)\n        : u8a;\n    return signerPair.sign(encoded, options);\n}\n","import { Struct } from '@polkadot/types-codec';\nimport { isU8a, isUndefined, objectProperties, objectSpread, stringify, u8aToHex } from '@polkadot/util';\nimport { EMPTY_U8A, IMMORTAL_ERA } from '../constants.js';\nimport { GenericExtrinsicPayloadV4 } from './ExtrinsicPayload.js';\nconst FAKE_SIGNATURE = new Uint8Array(256).fill(1);\nfunction toAddress(registry, address) {\n    return registry.createTypeUnsafe('Address', [isU8a(address) ? u8aToHex(address) : address]);\n}\n/**\n * @name GenericExtrinsicSignatureV4\n * @description\n * A container for the [[Signature]] associated with a specific [[Extrinsic]]\n */\nexport class GenericExtrinsicSignatureV4 extends Struct {\n    constructor(registry, value, { isSigned } = {}) {\n        const signTypes = registry.getSignedExtensionTypes();\n        super(registry, objectSpread(\n        // eslint-disable-next-line sort-keys\n        { signer: 'Address', signature: 'ExtrinsicSignature' }, signTypes), GenericExtrinsicSignatureV4.decodeExtrinsicSignature(value, isSigned));\n        this.__internal__signKeys = Object.keys(signTypes);\n        objectProperties(this, this.__internal__signKeys, (k) => this.get(k));\n    }\n    /** @internal */\n    static decodeExtrinsicSignature(value, isSigned = false) {\n        if (!value) {\n            return EMPTY_U8A;\n        }\n        else if (value instanceof GenericExtrinsicSignatureV4) {\n            return value;\n        }\n        return isSigned\n            ? value\n            : EMPTY_U8A;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return this.isSigned\n            ? super.encodedLength\n            : 0;\n    }\n    /**\n     * @description `true` if the signature is valid\n     */\n    get isSigned() {\n        return !this.signature.isEmpty;\n    }\n    /**\n     * @description The [[ExtrinsicEra]] (mortal or immortal) this signature applies to\n     */\n    get era() {\n        return this.getT('era');\n    }\n    /**\n     * @description The [[Index]] for the signature\n     */\n    get nonce() {\n        return this.getT('nonce');\n    }\n    /**\n     * @description The actual [[EcdsaSignature]], [[Ed25519Signature]] or [[Sr25519Signature]]\n     */\n    get signature() {\n        // the second case here is when we don't have an enum signature, treat as raw\n        return (this.multiSignature.value || this.multiSignature);\n    }\n    /**\n     * @description The raw [[ExtrinsicSignature]]\n     */\n    get multiSignature() {\n        return this.getT('signature');\n    }\n    /**\n     * @description The [[Address]] that signed\n     */\n    get signer() {\n        return this.getT('signer');\n    }\n    /**\n     * @description The [[Balance]] tip\n     */\n    get tip() {\n        return this.getT('tip');\n    }\n    _injectSignature(signer, signature, payload) {\n        // use the fields exposed to guide the getters\n        for (let i = 0, count = this.__internal__signKeys.length; i < count; i++) {\n            const k = this.__internal__signKeys[i];\n            const v = payload.get(k);\n            if (!isUndefined(v)) {\n                this.set(k, v);\n            }\n        }\n        // additional fields (exposed in struct itself)\n        this.set('signer', signer);\n        this.set('signature', signature);\n        return this;\n    }\n    /**\n     * @description Adds a raw signature\n     */\n    addSignature(signer, signature, payload) {\n        return this._injectSignature(toAddress(this.registry, signer), this.registry.createTypeUnsafe('ExtrinsicSignature', [signature]), new GenericExtrinsicPayloadV4(this.registry, payload));\n    }\n    /**\n     * @description Creates a payload from the supplied options\n     */\n    createPayload(method, options) {\n        const { era, runtimeVersion: { specVersion, transactionVersion } } = options;\n        return new GenericExtrinsicPayloadV4(this.registry, objectSpread({}, options, {\n            era: era || IMMORTAL_ERA,\n            method: method.toHex(),\n            specVersion,\n            transactionVersion\n        }));\n    }\n    /**\n     * @description Generate a payload and applies the signature from a keypair\n     */\n    sign(method, account, options) {\n        if (!account?.addressRaw) {\n            throw new Error(`Expected a valid keypair for signing, found ${stringify(account)}`);\n        }\n        const payload = this.createPayload(method, options);\n        return this._injectSignature(toAddress(this.registry, account.addressRaw), this.registry.createTypeUnsafe('ExtrinsicSignature', [payload.sign(account)]), payload);\n    }\n    /**\n     * @description Generate a payload and applies a fake signature\n     */\n    signFake(method, address, options) {\n        if (!address) {\n            throw new Error(`Expected a valid address for signing, found ${stringify(address)}`);\n        }\n        const payload = this.createPayload(method, options);\n        return this._injectSignature(toAddress(this.registry, address), this.registry.createTypeUnsafe('ExtrinsicSignature', [FAKE_SIGNATURE]), payload);\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        return this.isSigned\n            ? super.toU8a(isBare)\n            : EMPTY_U8A;\n    }\n}\n","import { U8aFixed } from '@polkadot/types-codec';\nimport { hexToU8a, isHex, isString, isU8a, u8aToU8a } from '@polkadot/util';\nimport { decodeAddress, encodeAddress } from '@polkadot/util-crypto';\n/** @internal */\nfunction decodeAccountId(value) {\n    if (isU8a(value) || Array.isArray(value)) {\n        return u8aToU8a(value);\n    }\n    else if (!value) {\n        return new Uint8Array();\n    }\n    else if (isHex(value)) {\n        return hexToU8a(value);\n    }\n    else if (isString(value)) {\n        return decodeAddress(value.toString());\n    }\n    throw new Error(`Unknown type passed to AccountId constructor, found typeof ${typeof value}`);\n}\nclass BaseAccountId extends U8aFixed {\n    constructor(registry, allowedBits = 256 | 264, value) {\n        const decoded = decodeAccountId(value);\n        const decodedBits = decoded.length * 8;\n        // Part of stream containing >= 32 bytes or a all empty (defaults)\n        if (decodedBits < allowedBits && decoded.some((b) => b)) {\n            throw new Error(`Invalid AccountId provided, expected ${allowedBits >> 3} bytes, found ${decoded.length}`);\n        }\n        super(registry, decoded, allowedBits);\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return super.eq(decodeAccountId(other));\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return this.toJSON();\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.toString();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.toJSON();\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return encodeAddress(this, this.registry.chainSS58);\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'AccountId';\n    }\n}\n/**\n * @name GenericAccountId\n * @description\n * A wrapper around an AccountId/PublicKey representation. Since we are dealing with\n * underlying PublicKeys (32 bytes in length), we extend from U8aFixed which is\n * just a Uint8Array wrapper with a fixed length.\n */\nexport class GenericAccountId extends BaseAccountId {\n    constructor(registry, value) {\n        super(registry, 256, value);\n    }\n}\nexport class GenericAccountId33 extends BaseAccountId {\n    constructor(registry, value) {\n        super(registry, 264, value);\n    }\n}\n","import { UInt } from '../base/UInt.js';\n/**\n * @name u32\n * @description\n * A 32-bit unsigned integer\n */\nexport class u32 extends UInt.with(32) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__UIntType = 'u32';\n    }\n}\n","import { u32 } from '@polkadot/types-codec';\nimport { BN, bnToBn, isBigInt, isBn, isHex, isNumber, isU8a } from '@polkadot/util';\nimport { decodeAddress, encodeAddress } from '@polkadot/util-crypto';\nconst PREFIX_1BYTE = 0xef;\nconst PREFIX_2BYTE = 0xfc;\nconst PREFIX_4BYTE = 0xfd;\nconst PREFIX_8BYTE = 0xfe;\nconst MAX_1BYTE = new BN(PREFIX_1BYTE);\nconst MAX_2BYTE = new BN(1).shln(16);\nconst MAX_4BYTE = new BN(1).shln(32);\n/** @internal */\nfunction decodeAccountIndex(value) {\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    if (value instanceof GenericAccountIndex) {\n        // `value.toBn()` on AccountIndex returns a pure BN (i.e. not an\n        // AccountIndex), which has the initial `toString()` implementation.\n        return value.toBn();\n    }\n    else if (isBn(value) || isNumber(value) || isHex(value) || isU8a(value) || isBigInt(value)) {\n        return value;\n    }\n    return decodeAccountIndex(decodeAddress(value));\n}\n/**\n * @name GenericAccountIndex\n * @description\n * A wrapper around an AccountIndex, which is a shortened, variable-length encoding\n * for an Account. We extends from [[U32]] to provide the number-like properties.\n */\nexport class GenericAccountIndex extends u32 {\n    constructor(registry, value = new BN(0)) {\n        super(registry, decodeAccountIndex(value));\n    }\n    static calcLength(_value) {\n        const value = bnToBn(_value);\n        if (value.lte(MAX_1BYTE)) {\n            return 1;\n        }\n        else if (value.lt(MAX_2BYTE)) {\n            return 2;\n        }\n        else if (value.lt(MAX_4BYTE)) {\n            return 4;\n        }\n        return 8;\n    }\n    static readLength(input) {\n        const first = input[0];\n        if (first === PREFIX_2BYTE) {\n            return [1, 2];\n        }\n        else if (first === PREFIX_4BYTE) {\n            return [1, 4];\n        }\n        else if (first === PREFIX_8BYTE) {\n            return [1, 8];\n        }\n        return [0, 1];\n    }\n    static writeLength(input) {\n        switch (input.length) {\n            case 2: return new Uint8Array([PREFIX_2BYTE]);\n            case 4: return new Uint8Array([PREFIX_4BYTE]);\n            case 8: return new Uint8Array([PREFIX_8BYTE]);\n            default: return new Uint8Array([]);\n        }\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        // shortcut for BN or Number, don't create an object\n        if (isBn(other) || isNumber(other)) {\n            return super.eq(other);\n        }\n        // convert and compare\n        return super.eq(this.registry.createTypeUnsafe('AccountIndex', [other]));\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return this.toJSON();\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.toString();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.toJSON();\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        const length = GenericAccountIndex.calcLength(this);\n        return encodeAddress(this.toU8a().subarray(0, length), this.registry.chainSS58);\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'AccountIndex';\n    }\n}\n","import { Struct } from '@polkadot/types-codec';\n/**\n * @name GenericBlock\n * @description\n * A block encoded with header and extrinsics\n */\nexport class GenericBlock extends Struct {\n    constructor(registry, value) {\n        super(registry, {\n            header: 'Header',\n            // eslint-disable-next-line sort-keys\n            extrinsics: 'Vec<Extrinsic>'\n        }, value);\n    }\n    /**\n     * @description Encodes a content [[Hash]] for the block\n     */\n    get contentHash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description The [[Extrinsic]] contained in the block\n     */\n    get extrinsics() {\n        return this.getT('extrinsics');\n    }\n    /**\n     * @description Block/header [[Hash]]\n     */\n    get hash() {\n        return this.header.hash;\n    }\n    /**\n     * @description The [[Header]] of the block\n     */\n    get header() {\n        return this.getT('header');\n    }\n}\n","import { Struct, U8aFixed } from '@polkadot/types-codec';\nimport { isHex, isObject, isU8a, objectSpread, u8aToU8a } from '@polkadot/util';\n/**\n * Get a mapping of `argument name -> argument type` for the function, from\n * its metadata.\n *\n * @param meta - The function metadata used to get the definition.\n * @internal\n */\nfunction getArgsDef(registry, meta) {\n    return meta.fields.reduce((result, { name, type }, index) => {\n        result[name.unwrapOr(`param${index}`).toString()] = registry.createLookupType(type);\n        return result;\n    }, {});\n}\n/** @internal */\nfunction decodeCallViaObject(registry, value, _meta) {\n    // we only pass args/methodsIndex out\n    const { args, callIndex } = value;\n    // Get the correct lookupIndex\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    const lookupIndex = callIndex instanceof GenericCallIndex\n        ? callIndex.toU8a()\n        : callIndex;\n    // Find metadata with callIndex\n    const meta = _meta || registry.findMetaCall(lookupIndex).meta;\n    return {\n        args,\n        argsDef: getArgsDef(registry, meta),\n        callIndex,\n        meta\n    };\n}\n/** @internal */\nfunction decodeCallViaU8a(registry, value, _meta) {\n    // We need 2 bytes for the callIndex\n    const callIndex = registry.firstCallIndex.slice();\n    callIndex.set(value.subarray(0, 2), 0);\n    // Find metadata with callIndex\n    const meta = _meta || registry.findMetaCall(callIndex).meta;\n    return {\n        args: value.subarray(2),\n        argsDef: getArgsDef(registry, meta),\n        callIndex,\n        meta\n    };\n}\n/**\n * Decode input to pass into constructor.\n *\n * @param value - Value to decode, one of:\n * - hex\n * - Uint8Array\n * - {@see DecodeMethodInput}\n * @param _meta - Metadata to use, so that `injectMethods` lookup is not\n * necessary.\n * @internal\n */\nfunction decodeCall(registry, value = new Uint8Array(), _meta) {\n    if (isU8a(value) || isHex(value)) {\n        return decodeCallViaU8a(registry, u8aToU8a(value), _meta);\n    }\n    else if (isObject(value) && value.callIndex && value.args) {\n        return decodeCallViaObject(registry, value, _meta);\n    }\n    throw new Error(`Call: Cannot decode value '${value}' of type ${typeof value}`);\n}\n/**\n * @name GenericCallIndex\n * @description\n * A wrapper around the `[sectionIndex, methodIndex]` value that uniquely identifies a method\n */\nexport class GenericCallIndex extends U8aFixed {\n    constructor(registry, value) {\n        super(registry, value, 16);\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.toHex();\n    }\n}\n/**\n * @name GenericCall\n * @description\n * Extrinsic function descriptor\n */\nexport class GenericCall extends Struct {\n    constructor(registry, value, meta) {\n        const decoded = decodeCall(registry, value, meta);\n        try {\n            super(registry, {\n                callIndex: GenericCallIndex,\n                // eslint-disable-next-line sort-keys\n                args: Struct.with(decoded.argsDef)\n            }, decoded);\n        }\n        catch (error) {\n            let method = 'unknown.unknown';\n            try {\n                const c = registry.findMetaCall(decoded.callIndex);\n                method = `${c.section}.${c.method}`;\n            }\n            catch {\n                // ignore\n            }\n            throw new Error(`Call: failed decoding ${method}:: ${error.message}`);\n        }\n        this._meta = decoded.meta;\n    }\n    /**\n     * @description The arguments for the function call\n     */\n    get args() {\n        return [...this.getT('args').values()];\n    }\n    /**\n     * @description The argument definitions\n     */\n    get argsDef() {\n        return getArgsDef(this.registry, this.meta);\n    }\n    /**\n     * @description The argument entries\n     */\n    get argsEntries() {\n        return [...this.getT('args').entries()];\n    }\n    /**\n     * @description The encoded `[sectionIndex, methodIndex]` identifier\n     */\n    get callIndex() {\n        return this.getT('callIndex').toU8a();\n    }\n    /**\n     * @description The encoded data\n     */\n    get data() {\n        return this.getT('args').toU8a();\n    }\n    /**\n     * @description The [[FunctionMetadata]]\n     */\n    get meta() {\n        return this._meta;\n    }\n    /**\n     * @description Returns the name of the method\n     */\n    get method() {\n        return this.registry.findMetaCall(this.callIndex).method;\n    }\n    /**\n     * @description Returns the module containing the method\n     */\n    get section() {\n        return this.registry.findMetaCall(this.callIndex).section;\n    }\n    /**\n     * @description Checks if the source matches this in type\n     */\n    is(other) {\n        return other.callIndex[0] === this.callIndex[0] && other.callIndex[1] === this.callIndex[1];\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExpanded) {\n        let call;\n        try {\n            call = this.registry.findMetaCall(this.callIndex);\n        }\n        catch {\n            // swallow\n        }\n        return objectSpread({\n            args: this.argsEntries.reduce((args, [n, a]) => objectSpread(args, { [n]: a.toHuman(isExpanded) }), {}),\n            method: call?.method,\n            section: call?.section\n        }, isExpanded && call\n            ? { docs: call.meta.docs.map((d) => d.toString()) }\n            : null);\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Call';\n    }\n}\n","import { Json } from '@polkadot/types-codec';\nimport { isFunction, isNull, isUndefined } from '@polkadot/util';\nfunction createValue(registry, type, value, asArray = true) {\n    // We detect codec here as well - when found, generally this is constructed from itself\n    if (value && isFunction(value.unwrapOrDefault)) {\n        return value;\n    }\n    return registry.createTypeUnsafe(type, [\n        asArray\n            ? isNull(value) || isUndefined(value)\n                ? null\n                : Array.isArray(value)\n                    ? value\n                    : [value]\n            : value\n    ]);\n}\nfunction decodeValue(registry, key, value) {\n    return key === 'ss58Format'\n        ? createValue(registry, 'Option<u32>', value, false)\n        : key === 'tokenDecimals'\n            ? createValue(registry, 'Option<Vec<u32>>', value)\n            : key === 'tokenSymbol'\n                ? createValue(registry, 'Option<Vec<Text>>', value)\n                : key === 'isEthereum'\n                    ? createValue(registry, 'Bool', value, false)\n                    : value;\n}\nfunction decode(registry, value) {\n    return (\n    // allow decoding from a map as well (ourselves)\n    value && isFunction(value.entries)\n        ? [...value.entries()]\n        : Object.entries(value || {})).reduce((all, [key, value]) => {\n        all[key] = decodeValue(registry, key, value);\n        return all;\n    }, {\n        isEthereum: registry.createTypeUnsafe('Bool', []),\n        ss58Format: registry.createTypeUnsafe('Option<u32>', []),\n        tokenDecimals: registry.createTypeUnsafe('Option<Vec<u32>>', []),\n        tokenSymbol: registry.createTypeUnsafe('Option<Vec<Text>>', [])\n    });\n}\nexport class GenericChainProperties extends Json {\n    constructor(registry, value) {\n        super(registry, decode(registry, value));\n    }\n    /**\n     * @description The chain uses Ethereum addresses\n     */\n    get isEthereum() {\n        return this.getT('isEthereum');\n    }\n    /**\n     * @description The chain ss58Format\n     */\n    get ss58Format() {\n        return this.getT('ss58Format');\n    }\n    /**\n     * @description The decimals for each of the tokens\n     */\n    get tokenDecimals() {\n        return this.getT('tokenDecimals');\n    }\n    /**\n     * @description The symbols for the tokens\n     */\n    get tokenSymbol() {\n        return this.getT('tokenSymbol');\n    }\n}\n","import { U8aFixed } from '@polkadot/types-codec';\nimport { BN, bnToU8a, isNumber, stringToU8a, u8aToHex, u8aToString } from '@polkadot/util';\nexport const CID_AURA = /*#__PURE__*/ stringToU8a('aura');\nexport const CID_BABE = /*#__PURE__*/ stringToU8a('BABE');\nexport const CID_GRPA = /*#__PURE__*/ stringToU8a('FRNK');\nexport const CID_POW = /*#__PURE__*/ stringToU8a('pow_');\nexport const CID_NMBS = /*#__PURE__*/ stringToU8a('nmbs');\nfunction getAuraAuthor(registry, bytes, sessionValidators) {\n    return sessionValidators[registry.createTypeUnsafe('RawAuraPreDigest', [bytes.toU8a(true)])\n        .slotNumber\n        .mod(new BN(sessionValidators.length))\n        .toNumber()];\n}\nfunction getBabeAuthor(registry, bytes, sessionValidators) {\n    const digest = registry.createTypeUnsafe('RawBabePreDigestCompat', [bytes.toU8a(true)]);\n    return sessionValidators[digest.value.toNumber()];\n}\nfunction getBytesAsAuthor(registry, bytes) {\n    return registry.createTypeUnsafe('AccountId', [bytes]);\n}\n/**\n * @name GenericConsensusEngineId\n * @description\n * A 4-byte identifier identifying the engine\n */\nexport class GenericConsensusEngineId extends U8aFixed {\n    constructor(registry, value) {\n        super(registry, isNumber(value)\n            ? bnToU8a(value, { isLe: false })\n            : value, 32);\n    }\n    /**\n     * @description `true` if the engine matches aura\n     */\n    get isAura() {\n        return this.eq(CID_AURA);\n    }\n    /**\n     * @description `true` is the engine matches babe\n     */\n    get isBabe() {\n        return this.eq(CID_BABE);\n    }\n    /**\n     * @description `true` is the engine matches grandpa\n     */\n    get isGrandpa() {\n        return this.eq(CID_GRPA);\n    }\n    /**\n     * @description `true` is the engine matches pow\n     */\n    get isPow() {\n        return this.eq(CID_POW);\n    }\n    /**\n     * @description `true` is the engine matches nimbus\n     */\n    get isNimbus() {\n        return this.eq(CID_NMBS);\n    }\n    /**\n     * @description From the input bytes, decode into an author\n     */\n    extractAuthor(bytes, sessionValidators) {\n        if (sessionValidators?.length) {\n            if (this.isAura) {\n                return getAuraAuthor(this.registry, bytes, sessionValidators);\n            }\n            else if (this.isBabe) {\n                return getBabeAuthor(this.registry, bytes, sessionValidators);\n            }\n        }\n        // For pow & Nimbus, the bytes are the actual author\n        if (this.isPow || this.isNimbus) {\n            return getBytesAsAuthor(this.registry, bytes);\n        }\n        return undefined;\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return this.toString();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'ConsensusEngineId';\n    }\n    /**\n     * @description Override the default toString to return a 4-byte string\n     */\n    toString() {\n        return this.isAscii\n            ? u8aToString(this)\n            : u8aToHex(this);\n    }\n}\n","import { AbstractBase } from '@polkadot/types-codec';\nimport { isBigInt, isBn, isHex, isNumber, isU8a, u8aConcat, u8aToBn, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { GenericAccountId } from './AccountId.js';\nimport { GenericAccountIndex } from './AccountIndex.js';\nexport const ACCOUNT_ID_PREFIX = new Uint8Array([0xff]);\n/** @internal */\nfunction decodeString(registry, value) {\n    const decoded = decodeAddress(value);\n    return decoded.length === 32\n        ? registry.createTypeUnsafe('AccountId', [decoded])\n        : registry.createTypeUnsafe('AccountIndex', [u8aToBn(decoded)]);\n}\n/** @internal */\nfunction decodeU8a(registry, value) {\n    // This allows us to instantiate an address with a raw publicKey. Do this first before\n    // we checking the first byte, otherwise we may split an already-existent valid address\n    if (value.length === 32) {\n        return registry.createTypeUnsafe('AccountId', [value]);\n    }\n    else if (value[0] === 0xff) {\n        return registry.createTypeUnsafe('AccountId', [value.subarray(1)]);\n    }\n    const [offset, length] = GenericAccountIndex.readLength(value);\n    return registry.createTypeUnsafe('AccountIndex', [u8aToBn(value.subarray(offset, offset + length))]);\n}\n/** @internal */\nfunction decodeAddressOrIndex(registry, value) {\n    return value instanceof GenericLookupSource\n        ? value.inner\n        : value instanceof GenericAccountId || value instanceof GenericAccountIndex\n            ? value\n            : isBn(value) || isNumber(value) || isBigInt(value)\n                ? registry.createTypeUnsafe('AccountIndex', [value])\n                : Array.isArray(value) || isHex(value) || isU8a(value)\n                    ? decodeU8a(registry, u8aToU8a(value))\n                    : decodeString(registry, value);\n}\n/**\n * @name LookupSource\n * @description\n * A wrapper around an AccountId and/or AccountIndex that is encoded with a prefix.\n * Since we are dealing with underlying publicKeys (or shorter encoded addresses),\n * we extend from Base with an AccountId/AccountIndex wrapper. Basically the Address\n * is encoded as `[ <prefix-byte>, ...publicKey/...bytes ]` as per spec\n */\nexport class GenericLookupSource extends AbstractBase {\n    constructor(registry, value = new Uint8Array()) {\n        super(registry, decodeAddressOrIndex(registry, value));\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        const rawLength = this._rawLength;\n        return rawLength + (\n        // for 1 byte AccountIndexes, we are not adding a specific prefix\n        rawLength > 1\n            ? 1\n            : 0);\n    }\n    /**\n     * @description The length of the raw value, either AccountIndex or AccountId\n     */\n    get _rawLength() {\n        return this.inner instanceof GenericAccountIndex\n            ? GenericAccountIndex.calcLength(this.inner)\n            : this.inner.encodedLength;\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        const value = this.inner.toU8a().subarray(0, this._rawLength);\n        return {\n            outer: [\n                new Uint8Array(this.inner instanceof GenericAccountIndex\n                    ? GenericAccountIndex.writeLength(value)\n                    : ACCOUNT_ID_PREFIX),\n                value\n            ]\n        };\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        return u8aToHex(this.toU8a());\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Address';\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        const encoded = this.inner.toU8a().subarray(0, this._rawLength);\n        return isBare\n            ? encoded\n            : u8aConcat(this.inner instanceof GenericAccountIndex\n                ? GenericAccountIndex.writeLength(encoded)\n                : ACCOUNT_ID_PREFIX, encoded);\n    }\n}\n","import { Enum } from '@polkadot/types-codec';\nimport { isBn, isNumber, isString, isU8a } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { GenericAccountId } from './AccountId.js';\nimport { GenericAccountIndex } from './AccountIndex.js';\nfunction decodeU8a(registry, u8a) {\n    if ([0, 32].includes(u8a.length)) {\n        return { Id: u8a };\n    }\n    else if (u8a.length === 20) {\n        return { Address20: u8a };\n    }\n    else if (u8a.length <= 8) {\n        return { Index: registry.createTypeUnsafe('AccountIndex', [u8a]).toNumber() };\n    }\n    return u8a;\n}\nfunction decodeMultiAny(registry, value) {\n    if (value instanceof GenericAccountId) {\n        return { Id: value };\n    }\n    else if (isU8a(value)) {\n        // NOTE This is after the AccountId check (which is U8a)\n        return decodeU8a(registry, value);\n    }\n    else if (value instanceof GenericMultiAddress) {\n        return value;\n    }\n    else if (value instanceof GenericAccountIndex || isBn(value) || isNumber(value)) {\n        return { Index: isNumber(value) ? value : value.toNumber() };\n    }\n    else if (isString(value)) {\n        return decodeU8a(registry, decodeAddress(value.toString()));\n    }\n    return value;\n}\nexport class GenericMultiAddress extends Enum {\n    constructor(registry, value) {\n        super(registry, {\n            Id: 'AccountId',\n            Index: 'Compact<AccountIndex>',\n            Raw: 'Bytes',\n            // eslint-disable-next-line sort-keys\n            Address32: 'H256',\n            // eslint-disable-next-line sort-keys\n            Address20: 'H160'\n        }, decodeMultiAny(registry, value));\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        const { inner, outer = [] } = this.inner.inspect();\n        return {\n            inner,\n            outer: [new Uint8Array([this.index]), ...outer]\n        };\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return this.value.toString();\n    }\n}\n","import { isU8a, u8aToHex } from '@polkadot/util';\n/**\n * @name bool\n * @description\n * Representation for a boolean value in the system. It extends the base JS `Boolean` class\n * @noInheritDoc\n */\nexport class bool extends Boolean {\n    constructor(registry, value = false) {\n        super(isU8a(value)\n            ? value[0] === 1\n            : value instanceof Boolean\n                ? value.valueOf()\n                : !!value);\n        this.initialU8aLength = 1;\n        this.registry = registry;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return 1 | 0;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Checks if the value is an empty value (true when it wraps false/default)\n     */\n    get isEmpty() {\n        return this.isFalse;\n    }\n    /**\n     * @description Checks if the value is an empty value (always false)\n     */\n    get isFalse() {\n        return !this.isTrue;\n    }\n    /**\n     * @description Checks if the value is an empty value (always false)\n     */\n    get isTrue() {\n        return this.valueOf();\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return this.valueOf() === (other instanceof Boolean\n            ? other.valueOf()\n            : other);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {\n            outer: [this.toU8a()]\n        };\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        return u8aToHex(this.toU8a());\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return this.toJSON();\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.valueOf();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.toJSON();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'bool';\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return this.toJSON().toString();\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     */\n    toU8a(_isBare) {\n        return new Uint8Array([this.valueOf() ? 1 : 0]);\n    }\n}\n","import { Bool, U8aFixed } from '@polkadot/types-codec';\nimport { isBoolean, isNumber, isU8a, isUndefined } from '@polkadot/util';\nconst AYE_BITS = 0b10000000;\nconst NAY_BITS = 0b00000000;\nconst CON_MASK = 0b01111111;\nconst DEF_CONV = 0b00000000; // the default conviction, None\n/** @internal */\nfunction decodeVoteBool(value) {\n    return value\n        ? new Uint8Array([AYE_BITS | DEF_CONV])\n        : new Uint8Array([NAY_BITS]);\n}\n/** @internal */\nfunction decodeVoteU8a(value) {\n    return value.length\n        ? value.subarray(0, 1)\n        : new Uint8Array([NAY_BITS]);\n}\n/** @internal */\nfunction decodeVoteType(registry, value) {\n    return new Uint8Array([\n        (new Bool(registry, value.aye).isTrue\n            ? AYE_BITS\n            : NAY_BITS) |\n            registry.createTypeUnsafe('Conviction', [value.conviction || DEF_CONV]).index\n    ]);\n}\n/** @internal */\nfunction decodeVote(registry, value) {\n    if (isU8a(value)) {\n        return decodeVoteU8a(value);\n    }\n    else if (isUndefined(value) || value instanceof Boolean || isBoolean(value)) {\n        return decodeVoteBool(new Bool(registry, value).isTrue);\n    }\n    else if (isNumber(value)) {\n        return decodeVoteBool(value < 0);\n    }\n    return decodeVoteType(registry, value);\n}\n/**\n * @name GenericVote\n * @description\n * A number of lock periods, plus a vote, one way or the other.\n */\nexport class GenericVote extends U8aFixed {\n    constructor(registry, value) {\n        // decoded is just 1 byte\n        // Aye: Most Significant Bit\n        // Conviction: 0000 - 0101\n        const decoded = decodeVote(registry, value);\n        super(registry, decoded, 8);\n        this.__internal__aye = (decoded[0] & AYE_BITS) === AYE_BITS;\n        this.__internal__conviction = this.registry.createTypeUnsafe('Conviction', [decoded[0] & CON_MASK]);\n    }\n    /**\n     * @description returns a V2 conviction\n     */\n    get conviction() {\n        return this.__internal__conviction;\n    }\n    /**\n     * @description true if the wrapped value is a positive vote\n     */\n    get isAye() {\n        return this.__internal__aye;\n    }\n    /**\n     * @description true if the wrapped value is a negative vote\n     */\n    get isNay() {\n        return !this.isAye;\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman(isExpanded) {\n        return {\n            conviction: this.conviction.toHuman(isExpanded),\n            vote: this.isAye ? 'Aye' : 'Nay'\n        };\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return {\n            aye: this.isAye,\n            conviction: this.conviction.toPrimitive()\n        };\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Vote';\n    }\n}\n","import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport {\n  Hash,\n  u32,\n  Input,\n  toBytes,\n  wrapConstructor,\n  wrapXOFConstructorWithOpts,\n  HashXOF,\n} from './utils.js';\n\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA]: [number[], number[], bigint[]] = [[], [], []];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n  // Pi\n  [x, y] = [y, (2 * x + 3 * y) % 5];\n  SHA3_PI.push(2 * (5 * y + x));\n  // Rotational\n  SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n  // Iota\n  let t = _0n;\n  for (let j = 0; j < 7; j++) {\n    R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n    if (R & _2n) t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n  }\n  _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\n\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h: number, l: number, s: number) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h: number, l: number, s: number) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s: Uint32Array, rounds: number = 24) {\n  const B = new Uint32Array(5 * 2);\n  // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n  for (let round = 24 - rounds; round < 24; round++) {\n    // Theta θ\n    for (let x = 0; x < 10; x++) B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n    for (let x = 0; x < 10; x += 2) {\n      const idx1 = (x + 8) % 10;\n      const idx0 = (x + 2) % 10;\n      const B0 = B[idx0];\n      const B1 = B[idx0 + 1];\n      const Th = rotlH(B0, B1, 1) ^ B[idx1];\n      const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n      for (let y = 0; y < 50; y += 10) {\n        s[x + y] ^= Th;\n        s[x + y + 1] ^= Tl;\n      }\n    }\n    // Rho (ρ) and Pi (π)\n    let curH = s[2];\n    let curL = s[3];\n    for (let t = 0; t < 24; t++) {\n      const shift = SHA3_ROTL[t];\n      const Th = rotlH(curH, curL, shift);\n      const Tl = rotlL(curH, curL, shift);\n      const PI = SHA3_PI[t];\n      curH = s[PI];\n      curL = s[PI + 1];\n      s[PI] = Th;\n      s[PI + 1] = Tl;\n    }\n    // Chi (χ)\n    for (let y = 0; y < 50; y += 10) {\n      for (let x = 0; x < 10; x++) B[x] = s[y + x];\n      for (let x = 0; x < 10; x++) s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n    }\n    // Iota (ι)\n    s[0] ^= SHA3_IOTA_H[round];\n    s[1] ^= SHA3_IOTA_L[round];\n  }\n  B.fill(0);\n}\n\nexport class Keccak extends Hash<Keccak> implements HashXOF<Keccak> {\n  protected state: Uint8Array;\n  protected pos = 0;\n  protected posOut = 0;\n  protected finished = false;\n  protected state32: Uint32Array;\n  protected destroyed = false;\n  // NOTE: we accept arguments in bytes instead of bits here.\n  constructor(\n    public blockLen: number,\n    public suffix: number,\n    public outputLen: number,\n    protected enableXOF = false,\n    protected rounds: number = 24\n  ) {\n    super();\n    // Can be passed from user as dkLen\n    number(outputLen);\n    // 1600 = 5x5 matrix of 64bit.  1600 bits === 200 bytes\n    if (0 >= this.blockLen || this.blockLen >= 200)\n      throw new Error('Sha3 supports only keccak-f1600 function');\n    this.state = new Uint8Array(200);\n    this.state32 = u32(this.state);\n  }\n  protected keccak() {\n    keccakP(this.state32, this.rounds);\n    this.posOut = 0;\n    this.pos = 0;\n  }\n  update(data: Input) {\n    exists(this);\n    const { blockLen, state } = this;\n    data = toBytes(data);\n    const len = data.length;\n    for (let pos = 0; pos < len; ) {\n      const take = Math.min(blockLen - this.pos, len - pos);\n      for (let i = 0; i < take; i++) state[this.pos++] ^= data[pos++];\n      if (this.pos === blockLen) this.keccak();\n    }\n    return this;\n  }\n  protected finish() {\n    if (this.finished) return;\n    this.finished = true;\n    const { state, suffix, pos, blockLen } = this;\n    // Do the padding\n    state[pos] ^= suffix;\n    if ((suffix & 0x80) !== 0 && pos === blockLen - 1) this.keccak();\n    state[blockLen - 1] ^= 0x80;\n    this.keccak();\n  }\n  protected writeInto(out: Uint8Array): Uint8Array {\n    exists(this, false);\n    bytes(out);\n    this.finish();\n    const bufferOut = this.state;\n    const { blockLen } = this;\n    for (let pos = 0, len = out.length; pos < len; ) {\n      if (this.posOut >= blockLen) this.keccak();\n      const take = Math.min(blockLen - this.posOut, len - pos);\n      out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n      this.posOut += take;\n      pos += take;\n    }\n    return out;\n  }\n  xofInto(out: Uint8Array): Uint8Array {\n    // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n    if (!this.enableXOF) throw new Error('XOF is not possible for this instance');\n    return this.writeInto(out);\n  }\n  xof(bytes: number): Uint8Array {\n    number(bytes);\n    return this.xofInto(new Uint8Array(bytes));\n  }\n  digestInto(out: Uint8Array) {\n    output(out, this);\n    if (this.finished) throw new Error('digest() was already called');\n    this.writeInto(out);\n    this.destroy();\n    return out;\n  }\n  digest() {\n    return this.digestInto(new Uint8Array(this.outputLen));\n  }\n  destroy() {\n    this.destroyed = true;\n    this.state.fill(0);\n  }\n  _cloneInto(to?: Keccak): Keccak {\n    const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n    to ||= new Keccak(blockLen, suffix, outputLen, enableXOF, rounds);\n    to.state32.set(this.state32);\n    to.pos = this.pos;\n    to.posOut = this.posOut;\n    to.finished = this.finished;\n    to.rounds = rounds;\n    // Suffix can change in cSHAKE\n    to.suffix = suffix;\n    to.outputLen = outputLen;\n    to.enableXOF = enableXOF;\n    to.destroyed = this.destroyed;\n    return to;\n  }\n}\n\nconst gen = (suffix: number, blockLen: number, outputLen: number) =>\n  wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\n\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\n\nexport type ShakeOpts = { dkLen?: number };\n\nconst genShake = (suffix: number, blockLen: number, outputLen: number) =>\n  wrapXOFConstructorWithOpts<HashXOF<Keccak>, ShakeOpts>(\n    (opts: ShakeOpts = {}) =>\n      new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true)\n  );\n\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n","import { keccak_256 as keccak256Js, keccak_512 as keccak512Js } from '@noble/hashes/sha3';\nimport { keccak256, keccak512 } from '@polkadot/wasm-crypto';\nimport { createAsHex, createBitHasher, createDualHasher } from '../helpers.js';\n/**\n * @name keccakAsU8a\n * @summary Creates a keccak Uint8Array from the input.\n * @description\n * From either a `string` or a `Buffer` input, create the keccak and return the result as a `Uint8Array`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { keccakAsU8a } from '@polkadot/util-crypto';\n *\n * keccakAsU8a('123'); // => Uint8Array\n * ```\n */\nexport const keccakAsU8a = /*#__PURE__*/ createDualHasher({ 256: keccak256, 512: keccak512 }, { 256: keccak256Js, 512: keccak512Js });\n/**\n * @name keccak256AsU8a\n * @description Creates a keccak256 Uint8Array from the input.\n */\nexport const keccak256AsU8a = /*#__PURE__*/ createBitHasher(256, keccakAsU8a);\n/**\n * @name keccak512AsU8a\n * @description Creates a keccak512 Uint8Array from the input.\n */\nexport const keccak512AsU8a = /*#__PURE__*/ createBitHasher(512, keccakAsU8a);\n/**\n * @name keccakAsHex\n * @description Creates a keccak hex string from the input.\n */\nexport const keccakAsHex = /*#__PURE__*/ createAsHex(keccakAsU8a);\n","import { isHex } from '@polkadot/util';\nimport { isEthereumChecksum } from './isChecksum.js';\nexport function isEthereumAddress(address) {\n    if (!address || address.length !== 42 || !isHex(address)) {\n        return false;\n    }\n    else if (/^(0x)?[0-9a-f]{40}$/.test(address) || /^(0x)?[0-9A-F]{40}$/.test(address)) {\n        return true;\n    }\n    return isEthereumChecksum(address);\n}\n","import { u8aToHex } from '@polkadot/util';\nimport { keccakAsU8a } from '../keccak/index.js';\nfunction isInvalidChar(char, byte) {\n    return char !== (byte > 7\n        ? char.toUpperCase()\n        : char.toLowerCase());\n}\nexport function isEthereumChecksum(_address) {\n    const address = _address.replace('0x', '');\n    const hash = u8aToHex(keccakAsU8a(address.toLowerCase()), -1, false);\n    for (let i = 0; i < 40; i++) {\n        if (isInvalidChar(address[i], parseInt(hash[i], 16))) {\n            return false;\n        }\n    }\n    return true;\n}\n","import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n// Polyfill for Safari 14\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n  if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n  const _32n = BigInt(32);\n  const _u32_max = BigInt(0xffffffff);\n  const wh = Number((value >> _32n) & _u32_max);\n  const wl = Number(value & _u32_max);\n  const h = isLE ? 4 : 0;\n  const l = isLE ? 0 : 4;\n  view.setUint32(byteOffset + h, wh, isLE);\n  view.setUint32(byteOffset + l, wl, isLE);\n}\n\n// Base SHA2 class (RFC 6234)\nexport abstract class SHA2<T extends SHA2<T>> extends Hash<T> {\n  protected abstract process(buf: DataView, offset: number): void;\n  protected abstract get(): number[];\n  protected abstract set(...args: number[]): void;\n  abstract destroy(): void;\n  protected abstract roundClean(): void;\n  // For partial updates less than block size\n  protected buffer: Uint8Array;\n  protected view: DataView;\n  protected finished = false;\n  protected length = 0;\n  protected pos = 0;\n  protected destroyed = false;\n\n  constructor(\n    readonly blockLen: number,\n    public outputLen: number,\n    readonly padOffset: number,\n    readonly isLE: boolean\n  ) {\n    super();\n    this.buffer = new Uint8Array(blockLen);\n    this.view = createView(this.buffer);\n  }\n  update(data: Input): this {\n    exists(this);\n    const { view, buffer, blockLen } = this;\n    data = toBytes(data);\n    const len = data.length;\n    for (let pos = 0; pos < len; ) {\n      const take = Math.min(blockLen - this.pos, len - pos);\n      // Fast path: we have at least one block in input, cast it to view and process\n      if (take === blockLen) {\n        const dataView = createView(data);\n        for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n        continue;\n      }\n      buffer.set(data.subarray(pos, pos + take), this.pos);\n      this.pos += take;\n      pos += take;\n      if (this.pos === blockLen) {\n        this.process(view, 0);\n        this.pos = 0;\n      }\n    }\n    this.length += data.length;\n    this.roundClean();\n    return this;\n  }\n  digestInto(out: Uint8Array) {\n    exists(this);\n    output(out, this);\n    this.finished = true;\n    // Padding\n    // We can avoid allocation of buffer for padding completely if it\n    // was previously not allocated here. But it won't change performance.\n    const { buffer, view, blockLen, isLE } = this;\n    let { pos } = this;\n    // append the bit '1' to the message\n    buffer[pos++] = 0b10000000;\n    this.buffer.subarray(pos).fill(0);\n    // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n    if (this.padOffset > blockLen - pos) {\n      this.process(view, 0);\n      pos = 0;\n    }\n    // Pad until full block byte with zeros\n    for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n    // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n    // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n    // So we just write lowest 64 bits of that value.\n    setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n    this.process(view, 0);\n    const oview = createView(out);\n    const len = this.outputLen;\n    // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n    if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n    const outLen = len / 4;\n    const state = this.get();\n    if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n    for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n  }\n  digest() {\n    const { buffer, outputLen } = this;\n    this.digestInto(buffer);\n    const res = buffer.slice(0, outputLen);\n    this.destroy();\n    return res;\n  }\n  _cloneInto(to?: T): T {\n    to ||= new (this.constructor as any)() as T;\n    to.set(...this.get());\n    const { blockLen, buffer, length, finished, destroyed, pos } = this;\n    to.length = length;\n    to.pos = pos;\n    to.finished = finished;\n    to.destroyed = destroyed;\n    if (length % blockLen) to.buffer.set(buffer);\n    return to;\n  }\n}\n","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n\n// Choice: a ? b : c\nconst Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */new Uint32Array([\n  0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n  0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n  0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n  0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n  0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n  0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n  0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n  0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = /* @__PURE__ */new Uint32Array([\n  0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends SHA2<SHA256> {\n  // We cannot use array here since array allows indexing by variable\n  // which means optimizer/compiler cannot use registers.\n  A = IV[0] | 0;\n  B = IV[1] | 0;\n  C = IV[2] | 0;\n  D = IV[3] | 0;\n  E = IV[4] | 0;\n  F = IV[5] | 0;\n  G = IV[6] | 0;\n  H = IV[7] | 0;\n\n  constructor() {\n    super(64, 32, 8, false);\n  }\n  protected get(): [number, number, number, number, number, number, number, number] {\n    const { A, B, C, D, E, F, G, H } = this;\n    return [A, B, C, D, E, F, G, H];\n  }\n  // prettier-ignore\n  protected set(\n    A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n  ) {\n    this.A = A | 0;\n    this.B = B | 0;\n    this.C = C | 0;\n    this.D = D | 0;\n    this.E = E | 0;\n    this.F = F | 0;\n    this.G = G | 0;\n    this.H = H | 0;\n  }\n  protected process(view: DataView, offset: number): void {\n    // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n    for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n    for (let i = 16; i < 64; i++) {\n      const W15 = SHA256_W[i - 15];\n      const W2 = SHA256_W[i - 2];\n      const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n      const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n      SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n    }\n    // Compression function main loop, 64 rounds\n    let { A, B, C, D, E, F, G, H } = this;\n    for (let i = 0; i < 64; i++) {\n      const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n      const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n      const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n      const T2 = (sigma0 + Maj(A, B, C)) | 0;\n      H = G;\n      G = F;\n      F = E;\n      E = (D + T1) | 0;\n      D = C;\n      C = B;\n      B = A;\n      A = (T1 + T2) | 0;\n    }\n    // Add the compressed chunk to the current hash value\n    A = (A + this.A) | 0;\n    B = (B + this.B) | 0;\n    C = (C + this.C) | 0;\n    D = (D + this.D) | 0;\n    E = (E + this.E) | 0;\n    F = (F + this.F) | 0;\n    G = (G + this.G) | 0;\n    H = (H + this.H) | 0;\n    this.set(A, B, C, D, E, F, G, H);\n  }\n  protected roundClean() {\n    SHA256_W.fill(0);\n  }\n  destroy() {\n    this.set(0, 0, 0, 0, 0, 0, 0, 0);\n    this.buffer.fill(0);\n  }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n  A = 0xc1059ed8 | 0;\n  B = 0x367cd507 | 0;\n  C = 0x3070dd17 | 0;\n  D = 0xf70e5939 | 0;\n  E = 0xffc00b31 | 0;\n  F = 0x68581511 | 0;\n  G = 0x64f98fa7 | 0;\n  H = 0xbefa4fa4 | 0;\n  constructor() {\n    super();\n    this.outputLen = 28;\n  }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nexport type Hex = Uint8Array | string; // hex strings are accepted for simplicity\nexport type PrivKey = Hex | bigint; // bigints are accepted to ease learning curve\nexport type CHash = {\n  (message: Uint8Array | string): Uint8Array;\n  blockLen: number;\n  outputLen: number;\n  create(opts?: { dkLen?: number }): any; // For shake\n};\nexport type FHash = (message: Uint8Array | string) => Uint8Array;\n\nexport function isBytes(a: unknown): a is Uint8Array {\n  return (\n    a instanceof Uint8Array ||\n    (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n  );\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n  i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n  if (!isBytes(bytes)) throw new Error('Uint8Array expected');\n  // pre-caching improves the speed 6x\n  let hex = '';\n  for (let i = 0; i < bytes.length; i++) {\n    hex += hexes[bytes[i]];\n  }\n  return hex;\n}\n\nexport function numberToHexUnpadded(num: number | bigint): string {\n  const hex = num.toString(16);\n  return hex.length & 1 ? `0${hex}` : hex;\n}\n\nexport function hexToNumber(hex: string): bigint {\n  if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n  // Big Endian\n  return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n  if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n  if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n  if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n  return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n  if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n  const hl = hex.length;\n  const al = hl / 2;\n  if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n  const array = new Uint8Array(al);\n  for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n    const n1 = asciiToBase16(hex.charCodeAt(hi));\n    const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n    if (n1 === undefined || n2 === undefined) {\n      const char = hex[hi] + hex[hi + 1];\n      throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n    }\n    array[ai] = n1 * 16 + n2;\n  }\n  return array;\n}\n\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes: Uint8Array): bigint {\n  return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes: Uint8Array): bigint {\n  if (!isBytes(bytes)) throw new Error('Uint8Array expected');\n  return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\n\nexport function numberToBytesBE(n: number | bigint, len: number): Uint8Array {\n  return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n: number | bigint, len: number): Uint8Array {\n  return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n: number | bigint): Uint8Array {\n  return hexToBytes(numberToHexUnpadded(n));\n}\n\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title: string, hex: Hex, expectedLength?: number): Uint8Array {\n  let res: Uint8Array;\n  if (typeof hex === 'string') {\n    try {\n      res = hexToBytes(hex);\n    } catch (e) {\n      throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n    }\n  } else if (isBytes(hex)) {\n    // Uint8Array.from() instead of hash.slice() because node.js Buffer\n    // is instance of Uint8Array, and its slice() creates **mutable** copy\n    res = Uint8Array.from(hex);\n  } else {\n    throw new Error(`${title} must be hex string or Uint8Array`);\n  }\n  const len = res.length;\n  if (typeof expectedLength === 'number' && len !== expectedLength)\n    throw new Error(`${title} expected ${expectedLength} bytes, got ${len}`);\n  return res;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n  let sum = 0;\n  for (let i = 0; i < arrays.length; i++) {\n    const a = arrays[i];\n    if (!isBytes(a)) throw new Error('Uint8Array expected');\n    sum += a.length;\n  }\n  let res = new Uint8Array(sum);\n  let pad = 0;\n  for (let i = 0; i < arrays.length; i++) {\n    const a = arrays[i];\n    res.set(a, pad);\n    pad += a.length;\n  }\n  return res;\n}\n\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a: Uint8Array, b: Uint8Array) {\n  if (a.length !== b.length) return false;\n  let diff = 0;\n  for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i];\n  return diff === 0;\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n  if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n  return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n// Bit operations\n\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n: bigint) {\n  let len;\n  for (len = 0; n > _0n; n >>= _1n, len += 1);\n  return len;\n}\n\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n: bigint, pos: number) {\n  return (n >> BigInt(pos)) & _1n;\n}\n\n/**\n * Sets single bit at position.\n */\nexport const bitSet = (n: bigint, pos: number, value: boolean) => {\n  return n | ((value ? _1n : _0n) << BigInt(pos));\n};\n\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n: number) => (_2n << BigInt(n - 1)) - _1n;\n\n// DRBG\n\nconst u8n = (data?: any) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr: any) => Uint8Array.from(arr); // another shortcut\ntype Pred<T> = (v: Uint8Array) => T | undefined;\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n *   const drbg = createHmacDRBG<Key>(32, 32, hmac);\n *   drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg<T>(\n  hashLen: number,\n  qByteLen: number,\n  hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array\n): (seed: Uint8Array, predicate: Pred<T>) => T {\n  if (typeof hashLen !== 'number' || hashLen < 2) throw new Error('hashLen must be a number');\n  if (typeof qByteLen !== 'number' || qByteLen < 2) throw new Error('qByteLen must be a number');\n  if (typeof hmacFn !== 'function') throw new Error('hmacFn must be a function');\n  // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n  let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n  let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n  let i = 0; // Iterations counter, will throw when over 1000\n  const reset = () => {\n    v.fill(1);\n    k.fill(0);\n    i = 0;\n  };\n  const h = (...b: Uint8Array[]) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n  const reseed = (seed = u8n()) => {\n    // HMAC-DRBG reseed() function. Steps D-G\n    k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n    v = h(); // v = hmac(k || v)\n    if (seed.length === 0) return;\n    k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n    v = h(); // v = hmac(k || v)\n  };\n  const gen = () => {\n    // HMAC-DRBG generate() function\n    if (i++ >= 1000) throw new Error('drbg: tried 1000 values');\n    let len = 0;\n    const out: Uint8Array[] = [];\n    while (len < qByteLen) {\n      v = h();\n      const sl = v.slice();\n      out.push(sl);\n      len += v.length;\n    }\n    return concatBytes(...out);\n  };\n  const genUntil = (seed: Uint8Array, pred: Pred<T>): T => {\n    reset();\n    reseed(seed); // Steps D-G\n    let res: T | undefined = undefined; // Step H: grind until k is in [1..n-1]\n    while (!(res = pred(gen()))) reseed();\n    reset();\n    return res;\n  };\n  return genUntil;\n}\n\n// Validating curves and fields\n\nconst validatorFns = {\n  bigint: (val: any) => typeof val === 'bigint',\n  function: (val: any) => typeof val === 'function',\n  boolean: (val: any) => typeof val === 'boolean',\n  string: (val: any) => typeof val === 'string',\n  stringOrUint8Array: (val: any) => typeof val === 'string' || isBytes(val),\n  isSafeInteger: (val: any) => Number.isSafeInteger(val),\n  array: (val: any) => Array.isArray(val),\n  field: (val: any, object: any) => (object as any).Fp.isValid(val),\n  hash: (val: any) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n} as const;\ntype Validator = keyof typeof validatorFns;\ntype ValMap<T extends Record<string, any>> = { [K in keyof T]?: Validator };\n// type Record<K extends string | number | symbol, T> = { [P in K]: T; }\n\nexport function validateObject<T extends Record<string, any>>(\n  object: T,\n  validators: ValMap<T>,\n  optValidators: ValMap<T> = {}\n) {\n  const checkField = (fieldName: keyof T, type: Validator, isOptional: boolean) => {\n    const checkVal = validatorFns[type];\n    if (typeof checkVal !== 'function')\n      throw new Error(`Invalid validator \"${type}\", expected function`);\n\n    const val = object[fieldName as keyof typeof object];\n    if (isOptional && val === undefined) return;\n    if (!checkVal(val, object)) {\n      throw new Error(\n        `Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`\n      );\n    }\n  };\n  for (const [fieldName, type] of Object.entries(validators)) checkField(fieldName, type!, false);\n  for (const [fieldName, type] of Object.entries(optValidators)) checkField(fieldName, type!, true);\n  return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport {\n  bitMask,\n  numberToBytesBE,\n  numberToBytesLE,\n  bytesToNumberBE,\n  bytesToNumberLE,\n  ensureBytes,\n  validateObject,\n} from './utils.js';\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nconst _9n = BigInt(9), _16n = BigInt(16);\n\n// Calculates a modulo b\nexport function mod(a: bigint, b: bigint): bigint {\n  const result = a % b;\n  return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nexport function pow(num: bigint, power: bigint, modulo: bigint): bigint {\n  if (modulo <= _0n || power < _0n) throw new Error('Expected power/modulo > 0');\n  if (modulo === _1n) return _0n;\n  let res = _1n;\n  while (power > _0n) {\n    if (power & _1n) res = (res * num) % modulo;\n    num = (num * num) % modulo;\n    power >>= _1n;\n  }\n  return res;\n}\n\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x: bigint, power: bigint, modulo: bigint): bigint {\n  let res = x;\n  while (power-- > _0n) {\n    res *= res;\n    res %= modulo;\n  }\n  return res;\n}\n\n// Inverses number over modulo\nexport function invert(number: bigint, modulo: bigint): bigint {\n  if (number === _0n || modulo <= _0n) {\n    throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n  }\n  // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n  // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n  let a = mod(number, modulo);\n  let b = modulo;\n  // prettier-ignore\n  let x = _0n, y = _1n, u = _1n, v = _0n;\n  while (a !== _0n) {\n    // JIT applies optimization if those two lines follow each other\n    const q = b / a;\n    const r = b % a;\n    const m = x - u * q;\n    const n = y - v * q;\n    // prettier-ignore\n    b = a, a = r, x = u, y = v, u = m, v = n;\n  }\n  const gcd = b;\n  if (gcd !== _1n) throw new Error('invert: does not exist');\n  return mod(x, modulo);\n}\n\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P: bigint) {\n  // Legendre constant: used to calculate Legendre symbol (a | p),\n  // which denotes the value of a^((p-1)/2) (mod p).\n  // (a | p) ≡ 1    if a is a square (mod p)\n  // (a | p) ≡ -1   if a is not a square (mod p)\n  // (a | p) ≡ 0    if a ≡ 0 (mod p)\n  const legendreC = (P - _1n) / _2n;\n\n  let Q: bigint, S: number, Z: bigint;\n  // Step 1: By factoring out powers of 2 from p - 1,\n  // find q and s such that p - 1 = q*(2^s) with q odd\n  for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++);\n\n  // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n  for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++);\n\n  // Fast-path\n  if (S === 1) {\n    const p1div4 = (P + _1n) / _4n;\n    return function tonelliFast<T>(Fp: IField<T>, n: T) {\n      const root = Fp.pow(n, p1div4);\n      if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n      return root;\n    };\n  }\n\n  // Slow-path\n  const Q1div2 = (Q + _1n) / _2n;\n  return function tonelliSlow<T>(Fp: IField<T>, n: T): T {\n    // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n    if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE)) throw new Error('Cannot find square root');\n    let r = S;\n    // TODO: will fail at Fp2/etc\n    let g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n    let x = Fp.pow(n, Q1div2); // first guess at the square root\n    let b = Fp.pow(n, Q); // first guess at the fudge factor\n\n    while (!Fp.eql(b, Fp.ONE)) {\n      if (Fp.eql(b, Fp.ZERO)) return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n      // Find m such b^(2^m)==1\n      let m = 1;\n      for (let t2 = Fp.sqr(b); m < r; m++) {\n        if (Fp.eql(t2, Fp.ONE)) break;\n        t2 = Fp.sqr(t2); // t2 *= t2\n      }\n      // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n      const ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n      g = Fp.sqr(ge); // g = ge * ge\n      x = Fp.mul(x, ge); // x *= ge\n      b = Fp.mul(b, g); // b *= g\n      r = m;\n    }\n    return x;\n  };\n}\n\nexport function FpSqrt(P: bigint) {\n  // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n  // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n\n  // P ≡ 3 (mod 4)\n  // √n = n^((P+1)/4)\n  if (P % _4n === _3n) {\n    // Not all roots possible!\n    // const ORDER =\n    //   0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n    // const NUM = 72057594037927816n;\n    const p1div4 = (P + _1n) / _4n;\n    return function sqrt3mod4<T>(Fp: IField<T>, n: T) {\n      const root = Fp.pow(n, p1div4);\n      // Throw if root**2 != n\n      if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n      return root;\n    };\n  }\n\n  // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n  if (P % _8n === _5n) {\n    const c1 = (P - _5n) / _8n;\n    return function sqrt5mod8<T>(Fp: IField<T>, n: T) {\n      const n2 = Fp.mul(n, _2n);\n      const v = Fp.pow(n2, c1);\n      const nv = Fp.mul(n, v);\n      const i = Fp.mul(Fp.mul(nv, _2n), v);\n      const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n      if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n      return root;\n    };\n  }\n\n  // P ≡ 9 (mod 16)\n  if (P % _16n === _9n) {\n    // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n    // Means we cannot use sqrt for constants at all!\n    //\n    // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); //  1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n    // const c2 = Fp.sqrt(c1);                //  2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n    // const c3 = Fp.sqrt(Fp.negate(c1));     //  3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n    // const c4 = (P + _7n) / _16n;           //  4. c4 = (q + 7) / 16        # Integer arithmetic\n    // sqrt = (x) => {\n    //   let tv1 = Fp.pow(x, c4);             //  1. tv1 = x^c4\n    //   let tv2 = Fp.mul(c1, tv1);           //  2. tv2 = c1 * tv1\n    //   const tv3 = Fp.mul(c2, tv1);         //  3. tv3 = c2 * tv1\n    //   let tv4 = Fp.mul(c3, tv1);           //  4. tv4 = c3 * tv1\n    //   const e1 = Fp.equals(Fp.square(tv2), x); //  5.  e1 = (tv2^2) == x\n    //   const e2 = Fp.equals(Fp.square(tv3), x); //  6.  e2 = (tv3^2) == x\n    //   tv1 = Fp.cmov(tv1, tv2, e1); //  7. tv1 = CMOV(tv1, tv2, e1)  # Select tv2 if (tv2^2) == x\n    //   tv2 = Fp.cmov(tv4, tv3, e2); //  8. tv2 = CMOV(tv4, tv3, e2)  # Select tv3 if (tv3^2) == x\n    //   const e3 = Fp.equals(Fp.square(tv2), x); //  9.  e3 = (tv2^2) == x\n    //   return Fp.cmov(tv1, tv2, e3); //  10.  z = CMOV(tv1, tv2, e3)  # Select the sqrt from tv1 and tv2\n    // }\n  }\n\n  // Other cases: Tonelli-Shanks algorithm\n  return tonelliShanks(P);\n}\n\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num: bigint, modulo: bigint) => (mod(num, modulo) & _1n) === _1n;\n\n// Field is not always over prime: for example, Fp2 has ORDER(q)=p^m\nexport interface IField<T> {\n  ORDER: bigint;\n  BYTES: number;\n  BITS: number;\n  MASK: bigint;\n  ZERO: T;\n  ONE: T;\n  // 1-arg\n  create: (num: T) => T;\n  isValid: (num: T) => boolean;\n  is0: (num: T) => boolean;\n  neg(num: T): T;\n  inv(num: T): T;\n  sqrt(num: T): T;\n  sqr(num: T): T;\n  // 2-args\n  eql(lhs: T, rhs: T): boolean;\n  add(lhs: T, rhs: T): T;\n  sub(lhs: T, rhs: T): T;\n  mul(lhs: T, rhs: T | bigint): T;\n  pow(lhs: T, power: bigint): T;\n  div(lhs: T, rhs: T | bigint): T;\n  // N for NonNormalized (for now)\n  addN(lhs: T, rhs: T): T;\n  subN(lhs: T, rhs: T): T;\n  mulN(lhs: T, rhs: T | bigint): T;\n  sqrN(num: T): T;\n\n  // Optional\n  // Should be same as sgn0 function in\n  // [RFC9380](https://www.rfc-editor.org/rfc/rfc9380#section-4.1).\n  // NOTE: sgn0 is 'negative in LE', which is same as odd. And negative in LE is kinda strange definition anyway.\n  isOdd?(num: T): boolean; // Odd instead of even since we have it for Fp2\n  // legendre?(num: T): T;\n  pow(lhs: T, power: bigint): T;\n  invertBatch: (lst: T[]) => T[];\n  toBytes(num: T): Uint8Array;\n  fromBytes(bytes: Uint8Array): T;\n  // If c is False, CMOV returns a, otherwise it returns b.\n  cmov(a: T, b: T, c: boolean): T;\n}\n// prettier-ignore\nconst FIELD_FIELDS = [\n  'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n  'eql', 'add', 'sub', 'mul', 'pow', 'div',\n  'addN', 'subN', 'mulN', 'sqrN'\n] as const;\nexport function validateField<T>(field: IField<T>) {\n  const initial = {\n    ORDER: 'bigint',\n    MASK: 'bigint',\n    BYTES: 'isSafeInteger',\n    BITS: 'isSafeInteger',\n  } as Record<string, string>;\n  const opts = FIELD_FIELDS.reduce((map, val: string) => {\n    map[val] = 'function';\n    return map;\n  }, initial);\n  return validateObject(field, opts);\n}\n\n// Generic field functions\n\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow<T>(f: IField<T>, num: T, power: bigint): T {\n  // Should have same speed as pow for bigints\n  // TODO: benchmark!\n  if (power < _0n) throw new Error('Expected power > 0');\n  if (power === _0n) return f.ONE;\n  if (power === _1n) return num;\n  let p = f.ONE;\n  let d = num;\n  while (power > _0n) {\n    if (power & _1n) p = f.mul(p, d);\n    d = f.sqr(d);\n    power >>= _1n;\n  }\n  return p;\n}\n\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch<T>(f: IField<T>, nums: T[]): T[] {\n  const tmp = new Array(nums.length);\n  // Walk from first to last, multiply them by each other MOD p\n  const lastMultiplied = nums.reduce((acc, num, i) => {\n    if (f.is0(num)) return acc;\n    tmp[i] = acc;\n    return f.mul(acc, num);\n  }, f.ONE);\n  // Invert last element\n  const inverted = f.inv(lastMultiplied);\n  // Walk from last to first, multiply them by inverted each other MOD p\n  nums.reduceRight((acc, num, i) => {\n    if (f.is0(num)) return acc;\n    tmp[i] = f.mul(acc, tmp[i]);\n    return f.mul(acc, num);\n  }, inverted);\n  return tmp;\n}\n\nexport function FpDiv<T>(f: IField<T>, lhs: T, rhs: T | bigint): T {\n  return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare<T>(f: IField<T>) {\n  const legendreConst = (f.ORDER - _1n) / _2n; // Integer arithmetic\n  return (x: T): boolean => {\n    const p = f.pow(x, legendreConst);\n    return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n  };\n}\n\n// CURVE.n lengths\nexport function nLength(n: bigint, nBitLength?: number) {\n  // Bit size, byte size of CURVE.n\n  const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n  const nByteLength = Math.ceil(_nBitLength / 8);\n  return { nBitLength: _nBitLength, nByteLength };\n}\n\ntype FpField = IField<bigint> & Required<Pick<IField<bigint>, 'isOdd'>>;\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(\n  ORDER: bigint,\n  bitLen?: number,\n  isLE = false,\n  redef: Partial<IField<bigint>> = {}\n): Readonly<FpField> {\n  if (ORDER <= _0n) throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n  const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n  if (BYTES > 2048) throw new Error('Field lengths over 2048 bytes are not supported');\n  const sqrtP = FpSqrt(ORDER);\n  const f: Readonly<FpField> = Object.freeze({\n    ORDER,\n    BITS,\n    BYTES,\n    MASK: bitMask(BITS),\n    ZERO: _0n,\n    ONE: _1n,\n    create: (num) => mod(num, ORDER),\n    isValid: (num) => {\n      if (typeof num !== 'bigint')\n        throw new Error(`Invalid field element: expected bigint, got ${typeof num}`);\n      return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n    },\n    is0: (num) => num === _0n,\n    isOdd: (num) => (num & _1n) === _1n,\n    neg: (num) => mod(-num, ORDER),\n    eql: (lhs, rhs) => lhs === rhs,\n\n    sqr: (num) => mod(num * num, ORDER),\n    add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n    sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n    mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n    pow: (num, power) => FpPow(f, num, power),\n    div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n\n    // Same as above, but doesn't normalize\n    sqrN: (num) => num * num,\n    addN: (lhs, rhs) => lhs + rhs,\n    subN: (lhs, rhs) => lhs - rhs,\n    mulN: (lhs, rhs) => lhs * rhs,\n\n    inv: (num) => invert(num, ORDER),\n    sqrt: redef.sqrt || ((n) => sqrtP(f, n)),\n    invertBatch: (lst) => FpInvertBatch(f, lst),\n    // TODO: do we really need constant cmov?\n    // We don't have const-time bigints anyway, so probably will be not very useful\n    cmov: (a, b, c) => (c ? b : a),\n    toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n    fromBytes: (bytes) => {\n      if (bytes.length !== BYTES)\n        throw new Error(`Fp.fromBytes: expected ${BYTES}, got ${bytes.length}`);\n      return isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n    },\n  } as FpField);\n  return Object.freeze(f);\n}\n\nexport function FpSqrtOdd<T>(Fp: IField<T>, elm: T) {\n  if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n  const root = Fp.sqrt(elm);\n  return Fp.isOdd(root) ? root : Fp.neg(root);\n}\n\nexport function FpSqrtEven<T>(Fp: IField<T>, elm: T) {\n  if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n  const root = Fp.sqrt(elm);\n  return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nexport function hashToPrivateScalar(\n  hash: string | Uint8Array,\n  groupOrder: bigint,\n  isLE = false\n): bigint {\n  hash = ensureBytes('privateHash', hash);\n  const hashLen = hash.length;\n  const minLen = nLength(groupOrder).nByteLength + 8;\n  if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n    throw new Error(`hashToPrivateScalar: expected ${minLen}-1024 bytes of input, got ${hashLen}`);\n  const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n  return mod(num, groupOrder - _1n) + _1n;\n}\n\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder: bigint): number {\n  if (typeof fieldOrder !== 'bigint') throw new Error('field order must be bigint');\n  const bitLength = fieldOrder.toString(2).length;\n  return Math.ceil(bitLength / 8);\n}\n\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder: bigint): number {\n  const length = getFieldBytesLength(fieldOrder);\n  return length + Math.ceil(length / 2);\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key: Uint8Array, fieldOrder: bigint, isLE = false): Uint8Array {\n  const len = key.length;\n  const fieldLen = getFieldBytesLength(fieldOrder);\n  const minLen = getMinHashLength(fieldOrder);\n  // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n  if (len < 16 || len < minLen || len > 1024)\n    throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n  const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key);\n  // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n  const reduced = mod(num, fieldOrder - _1n) + _1n;\n  return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n","import { hash as assertHash, bytes as assertBytes, exists as assertExists } from './_assert.js';\nimport { Hash, CHash, Input, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC<T extends Hash<T>> extends Hash<HMAC<T>> {\n  oHash: T;\n  iHash: T;\n  blockLen: number;\n  outputLen: number;\n  private finished = false;\n  private destroyed = false;\n\n  constructor(hash: CHash, _key: Input) {\n    super();\n    assertHash(hash);\n    const key = toBytes(_key);\n    this.iHash = hash.create() as T;\n    if (typeof this.iHash.update !== 'function')\n      throw new Error('Expected instance of class which extends utils.Hash');\n    this.blockLen = this.iHash.blockLen;\n    this.outputLen = this.iHash.outputLen;\n    const blockLen = this.blockLen;\n    const pad = new Uint8Array(blockLen);\n    // blockLen can be bigger than outputLen\n    pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n    for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36;\n    this.iHash.update(pad);\n    // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n    this.oHash = hash.create() as T;\n    // Undo internal XOR && apply outer XOR\n    for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36 ^ 0x5c;\n    this.oHash.update(pad);\n    pad.fill(0);\n  }\n  update(buf: Input) {\n    assertExists(this);\n    this.iHash.update(buf);\n    return this;\n  }\n  digestInto(out: Uint8Array) {\n    assertExists(this);\n    assertBytes(out, this.outputLen);\n    this.finished = true;\n    this.iHash.digestInto(out);\n    this.oHash.update(out);\n    this.oHash.digestInto(out);\n    this.destroy();\n  }\n  digest() {\n    const out = new Uint8Array(this.oHash.outputLen);\n    this.digestInto(out);\n    return out;\n  }\n  _cloneInto(to?: HMAC<T>): HMAC<T> {\n    // Create new instance without calling constructor since key already in state and we don't know it.\n    to ||= Object.create(Object.getPrototypeOf(this), {});\n    const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n    to = to as this;\n    to.finished = finished;\n    to.destroyed = destroyed;\n    to.blockLen = blockLen;\n    to.outputLen = outputLen;\n    to.oHash = oHash._cloneInto(to.oHash);\n    to.iHash = iHash._cloneInto(to.iHash);\n    return to;\n  }\n  destroy() {\n    this.destroyed = true;\n    this.oHash.destroy();\n    this.iHash.destroy();\n  }\n}\n\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash: CHash, key: Input, message: Input): Uint8Array =>\n  new HMAC<any>(hash, key).update(message).digest();\nhmac.create = (hash: CHash, key: Input) => new HMAC<any>(hash, key);\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { IField, validateField, nLength } from './modular.js';\nimport { validateObject } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n\nexport type AffinePoint<T> = {\n  x: T;\n  y: T;\n} & { z?: never; t?: never };\n\nexport interface Group<T extends Group<T>> {\n  double(): T;\n  negate(): T;\n  add(other: T): T;\n  subtract(other: T): T;\n  equals(other: T): boolean;\n  multiply(scalar: bigint): T;\n}\n\nexport type GroupConstructor<T> = {\n  BASE: T;\n  ZERO: T;\n};\nexport type Mapper<T> = (i: T[]) => T[];\n\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nexport function wNAF<T extends Group<T>>(c: GroupConstructor<T>, bits: number) {\n  const constTimeNegate = (condition: boolean, item: T): T => {\n    const neg = item.negate();\n    return condition ? neg : item;\n  };\n  const opts = (W: number) => {\n    const windows = Math.ceil(bits / W) + 1; // +1, because\n    const windowSize = 2 ** (W - 1); // -1 because we skip zero\n    return { windows, windowSize };\n  };\n  return {\n    constTimeNegate,\n    // non-const time multiplication ladder\n    unsafeLadder(elm: T, n: bigint) {\n      let p = c.ZERO;\n      let d: T = elm;\n      while (n > _0n) {\n        if (n & _1n) p = p.add(d);\n        d = d.double();\n        n >>= _1n;\n      }\n      return p;\n    },\n\n    /**\n     * Creates a wNAF precomputation window. Used for caching.\n     * Default window size is set by `utils.precompute()` and is equal to 8.\n     * Number of precomputed points depends on the curve size:\n     * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n     * - 𝑊 is the window size\n     * - 𝑛 is the bitlength of the curve order.\n     * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n     * @returns precomputed point tables flattened to a single array\n     */\n    precomputeWindow(elm: T, W: number): Group<T>[] {\n      const { windows, windowSize } = opts(W);\n      const points: T[] = [];\n      let p: T = elm;\n      let base = p;\n      for (let window = 0; window < windows; window++) {\n        base = p;\n        points.push(base);\n        // =1, because we skip zero\n        for (let i = 1; i < windowSize; i++) {\n          base = base.add(p);\n          points.push(base);\n        }\n        p = base.double();\n      }\n      return points;\n    },\n\n    /**\n     * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n     * @param W window size\n     * @param precomputes precomputed tables\n     * @param n scalar (we don't check here, but should be less than curve order)\n     * @returns real and fake (for const-time) points\n     */\n    wNAF(W: number, precomputes: T[], n: bigint): { p: T; f: T } {\n      // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n      // But need to carefully remove other checks before wNAF. ORDER == bits here\n      const { windows, windowSize } = opts(W);\n\n      let p = c.ZERO;\n      let f = c.BASE;\n\n      const mask = BigInt(2 ** W - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n      const maxNumber = 2 ** W;\n      const shiftBy = BigInt(W);\n\n      for (let window = 0; window < windows; window++) {\n        const offset = window * windowSize;\n        // Extract W bits.\n        let wbits = Number(n & mask);\n\n        // Shift number by W bits.\n        n >>= shiftBy;\n\n        // If the bits are bigger than max size, we'll split those.\n        // +224 => 256 - 32\n        if (wbits > windowSize) {\n          wbits -= maxNumber;\n          n += _1n;\n        }\n\n        // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n        // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n        // there is negate now: it is possible that negated element from low value\n        // would be the same as high element, which will create carry into next window.\n        // It's not obvious how this can fail, but still worth investigating later.\n\n        // Check if we're onto Zero point.\n        // Add random point inside current window to f.\n        const offset1 = offset;\n        const offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n        const cond1 = window % 2 !== 0;\n        const cond2 = wbits < 0;\n        if (wbits === 0) {\n          // The most important part for const-time getPublicKey\n          f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n        } else {\n          p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n        }\n      }\n      // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n      // Even if the variable is still unused, there are some checks which will\n      // throw an exception, so compiler needs to prove they won't happen, which is hard.\n      // At this point there is a way to F be infinity-point even if p is not,\n      // which makes it less const-time: around 1 bigint multiply.\n      return { p, f };\n    },\n\n    wNAFCached(P: T, precomputesMap: Map<T, T[]>, n: bigint, transform: Mapper<T>): { p: T; f: T } {\n      // @ts-ignore\n      const W: number = P._WINDOW_SIZE || 1;\n      // Calculate precomputes on a first run, reuse them after\n      let comp = precomputesMap.get(P);\n      if (!comp) {\n        comp = this.precomputeWindow(P, W) as T[];\n        if (W !== 1) {\n          precomputesMap.set(P, transform(comp));\n        }\n      }\n      return this.wNAF(W, comp, n);\n    },\n  };\n}\n\n// Generic BasicCurve interface: works even for polynomial fields (BLS): P, n, h would be ok.\n// Though generator can be different (Fp2 / Fp6 for BLS).\nexport type BasicCurve<T> = {\n  Fp: IField<T>; // Field over which we'll do calculations (Fp)\n  n: bigint; // Curve order, total count of valid points in the field\n  nBitLength?: number; // bit length of curve order\n  nByteLength?: number; // byte length of curve order\n  h: bigint; // cofactor. we can assign default=1, but users will just ignore it w/o validation\n  hEff?: bigint; // Number to multiply to clear cofactor\n  Gx: T; // base point X coordinate\n  Gy: T; // base point Y coordinate\n  allowInfinityPoint?: boolean; // bls12-381 requires it. ZERO point is valid, but invalid pubkey\n};\n\nexport function validateBasic<FP, T>(curve: BasicCurve<FP> & T) {\n  validateField(curve.Fp);\n  validateObject(\n    curve,\n    {\n      n: 'bigint',\n      h: 'bigint',\n      Gx: 'field',\n      Gy: 'field',\n    },\n    {\n      nBitLength: 'isSafeInteger',\n      nByteLength: 'isSafeInteger',\n    }\n  );\n  // Set defaults\n  return Object.freeze({\n    ...nLength(curve.n, curve.nBitLength),\n    ...curve,\n    ...{ p: curve.Fp.ORDER },\n  } as const);\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { CHash, Hex, PrivKey, ensureBytes } from './utils.js';\nimport { Group, GroupConstructor, wNAF, BasicCurve, validateBasic, AffinePoint } from './curve.js';\n\nexport type { AffinePoint };\ntype HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;\ntype EndomorphismOpts = {\n  beta: bigint;\n  splitScalar: (k: bigint) => { k1neg: boolean; k1: bigint; k2neg: boolean; k2: bigint };\n};\nexport type BasicWCurve<T> = BasicCurve<T> & {\n  // Params: a, b\n  a: T;\n  b: T;\n\n  // Optional params\n  allowedPrivateKeyLengths?: readonly number[]; // for P521\n  wrapPrivateKey?: boolean; // bls12-381 requires mod(n) instead of rejecting keys >= n\n  endo?: EndomorphismOpts; // Endomorphism options for Koblitz curves\n  // When a cofactor != 1, there can be an effective methods to:\n  // 1. Determine whether a point is torsion-free\n  isTorsionFree?: (c: ProjConstructor<T>, point: ProjPointType<T>) => boolean;\n  // 2. Clear torsion component\n  clearCofactor?: (c: ProjConstructor<T>, point: ProjPointType<T>) => ProjPointType<T>;\n};\n\ntype Entropy = Hex | true;\nexport type SignOpts = { lowS?: boolean; extraEntropy?: Entropy; prehash?: boolean };\nexport type VerOpts = { lowS?: boolean; prehash?: boolean };\n\n/**\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n *   `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n *   `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n *   it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance of nominative types in TypeScript and interfaces only check for shape, so it's hard to create unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n *     1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n *     which is hard to debug.\n *     2. Params can be generic and we can't enforce them to be constant value:\n *     if somebody creates curve from non-constant params,\n *     it would be allowed to interact with other curves with non-constant params\n *\n * TODO: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n */\n\n// Instance for 3d XYZ points\nexport interface ProjPointType<T> extends Group<ProjPointType<T>> {\n  readonly px: T;\n  readonly py: T;\n  readonly pz: T;\n  get x(): T;\n  get y(): T;\n  multiply(scalar: bigint): ProjPointType<T>;\n  toAffine(iz?: T): AffinePoint<T>;\n  isTorsionFree(): boolean;\n  clearCofactor(): ProjPointType<T>;\n  assertValidity(): void;\n  hasEvenY(): boolean;\n  toRawBytes(isCompressed?: boolean): Uint8Array;\n  toHex(isCompressed?: boolean): string;\n\n  multiplyUnsafe(scalar: bigint): ProjPointType<T>;\n  multiplyAndAddUnsafe(Q: ProjPointType<T>, a: bigint, b: bigint): ProjPointType<T> | undefined;\n  _setWindowSize(windowSize: number): void;\n}\n// Static methods for 3d XYZ points\nexport interface ProjConstructor<T> extends GroupConstructor<ProjPointType<T>> {\n  new (x: T, y: T, z: T): ProjPointType<T>;\n  fromAffine(p: AffinePoint<T>): ProjPointType<T>;\n  fromHex(hex: Hex): ProjPointType<T>;\n  fromPrivateKey(privateKey: PrivKey): ProjPointType<T>;\n  normalizeZ(points: ProjPointType<T>[]): ProjPointType<T>[];\n}\n\nexport type CurvePointsType<T> = BasicWCurve<T> & {\n  // Bytes\n  fromBytes?: (bytes: Uint8Array) => AffinePoint<T>;\n  toBytes?: (c: ProjConstructor<T>, point: ProjPointType<T>, isCompressed: boolean) => Uint8Array;\n};\n\nfunction validatePointOpts<T>(curve: CurvePointsType<T>) {\n  const opts = validateBasic(curve);\n  ut.validateObject(\n    opts,\n    {\n      a: 'field',\n      b: 'field',\n    },\n    {\n      allowedPrivateKeyLengths: 'array',\n      wrapPrivateKey: 'boolean',\n      isTorsionFree: 'function',\n      clearCofactor: 'function',\n      allowInfinityPoint: 'boolean',\n      fromBytes: 'function',\n      toBytes: 'function',\n    }\n  );\n  const { endo, Fp, a } = opts;\n  if (endo) {\n    if (!Fp.eql(a, Fp.ZERO)) {\n      throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n    }\n    if (\n      typeof endo !== 'object' ||\n      typeof endo.beta !== 'bigint' ||\n      typeof endo.splitScalar !== 'function'\n    ) {\n      throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n    }\n  }\n  return Object.freeze({ ...opts } as const);\n}\n\nexport type CurvePointsRes<T> = {\n  CURVE: ReturnType<typeof validatePointOpts<T>>;\n  ProjectivePoint: ProjConstructor<T>;\n  normPrivateKeyToScalar: (key: PrivKey) => bigint;\n  weierstrassEquation: (x: T) => T;\n  isWithinCurveOrder: (num: bigint) => boolean;\n};\n\n// ASN.1 DER encoding utilities\nconst { bytesToNumberBE: b2n, hexToBytes: h2b } = ut;\nexport const DER = {\n  // asn.1 DER encoding utils\n  Err: class DERErr extends Error {\n    constructor(m = '') {\n      super(m);\n    }\n  },\n  _parseInt(data: Uint8Array): { d: bigint; l: Uint8Array } {\n    const { Err: E } = DER;\n    if (data.length < 2 || data[0] !== 0x02) throw new E('Invalid signature integer tag');\n    const len = data[1];\n    const res = data.subarray(2, len + 2);\n    if (!len || res.length !== len) throw new E('Invalid signature integer: wrong length');\n    // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n    // since we always use positive integers here. It must always be empty:\n    // - add zero byte if exists\n    // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n    if (res[0] & 0b10000000) throw new E('Invalid signature integer: negative');\n    if (res[0] === 0x00 && !(res[1] & 0b10000000))\n      throw new E('Invalid signature integer: unnecessary leading zero');\n    return { d: b2n(res), l: data.subarray(len + 2) }; // d is data, l is left\n  },\n  toSig(hex: string | Uint8Array): { r: bigint; s: bigint } {\n    // parse DER signature\n    const { Err: E } = DER;\n    const data = typeof hex === 'string' ? h2b(hex) : hex;\n    if (!ut.isBytes(data)) throw new Error('ui8a expected');\n    let l = data.length;\n    if (l < 2 || data[0] != 0x30) throw new E('Invalid signature tag');\n    if (data[1] !== l - 2) throw new E('Invalid signature: incorrect length');\n    const { d: r, l: sBytes } = DER._parseInt(data.subarray(2));\n    const { d: s, l: rBytesLeft } = DER._parseInt(sBytes);\n    if (rBytesLeft.length) throw new E('Invalid signature: left bytes after parsing');\n    return { r, s };\n  },\n  hexFromSig(sig: { r: bigint; s: bigint }): string {\n    // Add leading zero if first byte has negative bit enabled. More details in '_parseInt'\n    const slice = (s: string): string => (Number.parseInt(s[0], 16) & 0b1000 ? '00' + s : s);\n    const h = (num: number | bigint) => {\n      const hex = num.toString(16);\n      return hex.length & 1 ? `0${hex}` : hex;\n    };\n    const s = slice(h(sig.s));\n    const r = slice(h(sig.r));\n    const shl = s.length / 2;\n    const rhl = r.length / 2;\n    const sl = h(shl);\n    const rl = h(rhl);\n    return `30${h(rhl + shl + 4)}02${rl}${r}02${sl}${s}`;\n  },\n};\n\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\n\nexport function weierstrassPoints<T>(opts: CurvePointsType<T>): CurvePointsRes<T> {\n  const CURVE = validatePointOpts(opts);\n  const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n\n  const toBytes =\n    CURVE.toBytes ||\n    ((_c: ProjConstructor<T>, point: ProjPointType<T>, _isCompressed: boolean) => {\n      const a = point.toAffine();\n      return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n    });\n  const fromBytes =\n    CURVE.fromBytes ||\n    ((bytes: Uint8Array) => {\n      // const head = bytes[0];\n      const tail = bytes.subarray(1);\n      // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n      const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n      const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n      return { x, y };\n    });\n\n  /**\n   * y² = x³ + ax + b: Short weierstrass curve formula\n   * @returns y²\n   */\n  function weierstrassEquation(x: T): T {\n    const { a, b } = CURVE;\n    const x2 = Fp.sqr(x); // x * x\n    const x3 = Fp.mul(x2, x); // x2 * x\n    return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n  }\n  // Validate whether the passed curve params are valid.\n  // We check if curve equation works for generator point.\n  // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n  // ProjectivePoint class has not been initialized yet.\n  if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n    throw new Error('bad generator point: equation left != right');\n\n  // Valid group elements reside in range 1..n-1\n  function isWithinCurveOrder(num: bigint): boolean {\n    return typeof num === 'bigint' && _0n < num && num < CURVE.n;\n  }\n  function assertGE(num: bigint) {\n    if (!isWithinCurveOrder(num)) throw new Error('Expected valid bigint: 0 < bigint < curve.n');\n  }\n  // Validates if priv key is valid and converts it to bigint.\n  // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n  function normPrivateKeyToScalar(key: PrivKey): bigint {\n    const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n } = CURVE;\n    if (lengths && typeof key !== 'bigint') {\n      if (ut.isBytes(key)) key = ut.bytesToHex(key);\n      // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n      if (typeof key !== 'string' || !lengths.includes(key.length)) throw new Error('Invalid key');\n      key = key.padStart(nByteLength * 2, '0');\n    }\n    let num: bigint;\n    try {\n      num =\n        typeof key === 'bigint'\n          ? key\n          : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n    } catch (error) {\n      throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n    }\n    if (wrapPrivateKey) num = mod.mod(num, n); // disabled by default, enabled for BLS\n    assertGE(num); // num in range [1..N-1]\n    return num;\n  }\n\n  const pointPrecomputes = new Map<Point, Point[]>();\n  function assertPrjPoint(other: unknown) {\n    if (!(other instanceof Point)) throw new Error('ProjectivePoint expected');\n  }\n  /**\n   * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n   * Default Point works in 2d / affine coordinates: (x, y)\n   * We're doing calculations in projective, because its operations don't require costly inversion.\n   */\n  class Point implements ProjPointType<T> {\n    static readonly BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n    static readonly ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n\n    constructor(\n      readonly px: T,\n      readonly py: T,\n      readonly pz: T\n    ) {\n      if (px == null || !Fp.isValid(px)) throw new Error('x required');\n      if (py == null || !Fp.isValid(py)) throw new Error('y required');\n      if (pz == null || !Fp.isValid(pz)) throw new Error('z required');\n    }\n\n    // Does not validate if the point is on-curve.\n    // Use fromHex instead, or call assertValidity() later.\n    static fromAffine(p: AffinePoint<T>): Point {\n      const { x, y } = p || {};\n      if (!p || !Fp.isValid(x) || !Fp.isValid(y)) throw new Error('invalid affine point');\n      if (p instanceof Point) throw new Error('projective point not allowed');\n      const is0 = (i: T) => Fp.eql(i, Fp.ZERO);\n      // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n      if (is0(x) && is0(y)) return Point.ZERO;\n      return new Point(x, y, Fp.ONE);\n    }\n\n    get x(): T {\n      return this.toAffine().x;\n    }\n    get y(): T {\n      return this.toAffine().y;\n    }\n\n    /**\n     * Takes a bunch of Projective Points but executes only one\n     * inversion on all of them. Inversion is very slow operation,\n     * so this improves performance massively.\n     * Optimization: converts a list of projective points to a list of identical points with Z=1.\n     */\n    static normalizeZ(points: Point[]): Point[] {\n      const toInv = Fp.invertBatch(points.map((p) => p.pz));\n      return points.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n    }\n\n    /**\n     * Converts hash string or Uint8Array to Point.\n     * @param hex short/long ECDSA hex\n     */\n    static fromHex(hex: Hex): Point {\n      const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n      P.assertValidity();\n      return P;\n    }\n\n    // Multiplies generator point by privateKey.\n    static fromPrivateKey(privateKey: PrivKey) {\n      return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n    }\n\n    // We calculate precomputes for elliptic curve point multiplication\n    // using windowed method. This specifies window size and\n    // stores precomputed values. Usually only base point would be precomputed.\n    _WINDOW_SIZE?: number;\n\n    // \"Private method\", don't use it directly\n    _setWindowSize(windowSize: number) {\n      this._WINDOW_SIZE = windowSize;\n      pointPrecomputes.delete(this);\n    }\n\n    // A point on curve is valid if it conforms to equation.\n    assertValidity(): void {\n      if (this.is0()) {\n        // (0, 1, 0) aka ZERO is invalid in most contexts.\n        // In BLS, ZERO can be serialized, so we allow it.\n        // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n        if (CURVE.allowInfinityPoint && !Fp.is0(this.py)) return;\n        throw new Error('bad point: ZERO');\n      }\n      // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n      const { x, y } = this.toAffine();\n      // Check if x, y are valid field elements\n      if (!Fp.isValid(x) || !Fp.isValid(y)) throw new Error('bad point: x or y not FE');\n      const left = Fp.sqr(y); // y²\n      const right = weierstrassEquation(x); // x³ + ax + b\n      if (!Fp.eql(left, right)) throw new Error('bad point: equation left != right');\n      if (!this.isTorsionFree()) throw new Error('bad point: not in prime-order subgroup');\n    }\n    hasEvenY(): boolean {\n      const { y } = this.toAffine();\n      if (Fp.isOdd) return !Fp.isOdd(y);\n      throw new Error(\"Field doesn't support isOdd\");\n    }\n\n    /**\n     * Compare one point to another.\n     */\n    equals(other: Point): boolean {\n      assertPrjPoint(other);\n      const { px: X1, py: Y1, pz: Z1 } = this;\n      const { px: X2, py: Y2, pz: Z2 } = other;\n      const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n      const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n      return U1 && U2;\n    }\n\n    /**\n     * Flips point to one corresponding to (x, -y) in Affine coordinates.\n     */\n    negate(): Point {\n      return new Point(this.px, Fp.neg(this.py), this.pz);\n    }\n\n    // Renes-Costello-Batina exception-free doubling formula.\n    // There is 30% faster Jacobian formula, but it is not complete.\n    // https://eprint.iacr.org/2015/1060, algorithm 3\n    // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n    double() {\n      const { a, b } = CURVE;\n      const b3 = Fp.mul(b, _3n);\n      const { px: X1, py: Y1, pz: Z1 } = this;\n      let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n      let t0 = Fp.mul(X1, X1); // step 1\n      let t1 = Fp.mul(Y1, Y1);\n      let t2 = Fp.mul(Z1, Z1);\n      let t3 = Fp.mul(X1, Y1);\n      t3 = Fp.add(t3, t3); // step 5\n      Z3 = Fp.mul(X1, Z1);\n      Z3 = Fp.add(Z3, Z3);\n      X3 = Fp.mul(a, Z3);\n      Y3 = Fp.mul(b3, t2);\n      Y3 = Fp.add(X3, Y3); // step 10\n      X3 = Fp.sub(t1, Y3);\n      Y3 = Fp.add(t1, Y3);\n      Y3 = Fp.mul(X3, Y3);\n      X3 = Fp.mul(t3, X3);\n      Z3 = Fp.mul(b3, Z3); // step 15\n      t2 = Fp.mul(a, t2);\n      t3 = Fp.sub(t0, t2);\n      t3 = Fp.mul(a, t3);\n      t3 = Fp.add(t3, Z3);\n      Z3 = Fp.add(t0, t0); // step 20\n      t0 = Fp.add(Z3, t0);\n      t0 = Fp.add(t0, t2);\n      t0 = Fp.mul(t0, t3);\n      Y3 = Fp.add(Y3, t0);\n      t2 = Fp.mul(Y1, Z1); // step 25\n      t2 = Fp.add(t2, t2);\n      t0 = Fp.mul(t2, t3);\n      X3 = Fp.sub(X3, t0);\n      Z3 = Fp.mul(t2, t1);\n      Z3 = Fp.add(Z3, Z3); // step 30\n      Z3 = Fp.add(Z3, Z3);\n      return new Point(X3, Y3, Z3);\n    }\n\n    // Renes-Costello-Batina exception-free addition formula.\n    // There is 30% faster Jacobian formula, but it is not complete.\n    // https://eprint.iacr.org/2015/1060, algorithm 1\n    // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n    add(other: Point): Point {\n      assertPrjPoint(other);\n      const { px: X1, py: Y1, pz: Z1 } = this;\n      const { px: X2, py: Y2, pz: Z2 } = other;\n      let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n      const a = CURVE.a;\n      const b3 = Fp.mul(CURVE.b, _3n);\n      let t0 = Fp.mul(X1, X2); // step 1\n      let t1 = Fp.mul(Y1, Y2);\n      let t2 = Fp.mul(Z1, Z2);\n      let t3 = Fp.add(X1, Y1);\n      let t4 = Fp.add(X2, Y2); // step 5\n      t3 = Fp.mul(t3, t4);\n      t4 = Fp.add(t0, t1);\n      t3 = Fp.sub(t3, t4);\n      t4 = Fp.add(X1, Z1);\n      let t5 = Fp.add(X2, Z2); // step 10\n      t4 = Fp.mul(t4, t5);\n      t5 = Fp.add(t0, t2);\n      t4 = Fp.sub(t4, t5);\n      t5 = Fp.add(Y1, Z1);\n      X3 = Fp.add(Y2, Z2); // step 15\n      t5 = Fp.mul(t5, X3);\n      X3 = Fp.add(t1, t2);\n      t5 = Fp.sub(t5, X3);\n      Z3 = Fp.mul(a, t4);\n      X3 = Fp.mul(b3, t2); // step 20\n      Z3 = Fp.add(X3, Z3);\n      X3 = Fp.sub(t1, Z3);\n      Z3 = Fp.add(t1, Z3);\n      Y3 = Fp.mul(X3, Z3);\n      t1 = Fp.add(t0, t0); // step 25\n      t1 = Fp.add(t1, t0);\n      t2 = Fp.mul(a, t2);\n      t4 = Fp.mul(b3, t4);\n      t1 = Fp.add(t1, t2);\n      t2 = Fp.sub(t0, t2); // step 30\n      t2 = Fp.mul(a, t2);\n      t4 = Fp.add(t4, t2);\n      t0 = Fp.mul(t1, t4);\n      Y3 = Fp.add(Y3, t0);\n      t0 = Fp.mul(t5, t4); // step 35\n      X3 = Fp.mul(t3, X3);\n      X3 = Fp.sub(X3, t0);\n      t0 = Fp.mul(t3, t1);\n      Z3 = Fp.mul(t5, Z3);\n      Z3 = Fp.add(Z3, t0); // step 40\n      return new Point(X3, Y3, Z3);\n    }\n\n    subtract(other: Point) {\n      return this.add(other.negate());\n    }\n\n    private is0() {\n      return this.equals(Point.ZERO);\n    }\n    private wNAF(n: bigint): { p: Point; f: Point } {\n      return wnaf.wNAFCached(this, pointPrecomputes, n, (comp: Point[]) => {\n        const toInv = Fp.invertBatch(comp.map((p) => p.pz));\n        return comp.map((p, i) => p.toAffine(toInv[i])).map(Point.fromAffine);\n      });\n    }\n\n    /**\n     * Non-constant-time multiplication. Uses double-and-add algorithm.\n     * It's faster, but should only be used when you don't care about\n     * an exposed private key e.g. sig verification, which works over *public* keys.\n     */\n    multiplyUnsafe(n: bigint): Point {\n      const I = Point.ZERO;\n      if (n === _0n) return I;\n      assertGE(n); // Will throw on 0\n      if (n === _1n) return this;\n      const { endo } = CURVE;\n      if (!endo) return wnaf.unsafeLadder(this, n);\n\n      // Apply endomorphism\n      let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n      let k1p = I;\n      let k2p = I;\n      let d: Point = this;\n      while (k1 > _0n || k2 > _0n) {\n        if (k1 & _1n) k1p = k1p.add(d);\n        if (k2 & _1n) k2p = k2p.add(d);\n        d = d.double();\n        k1 >>= _1n;\n        k2 >>= _1n;\n      }\n      if (k1neg) k1p = k1p.negate();\n      if (k2neg) k2p = k2p.negate();\n      k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n      return k1p.add(k2p);\n    }\n\n    /**\n     * Constant time multiplication.\n     * Uses wNAF method. Windowed method may be 10% faster,\n     * but takes 2x longer to generate and consumes 2x memory.\n     * Uses precomputes when available.\n     * Uses endomorphism for Koblitz curves.\n     * @param scalar by which the point would be multiplied\n     * @returns New point\n     */\n    multiply(scalar: bigint): Point {\n      assertGE(scalar);\n      let n = scalar;\n      let point: Point, fake: Point; // Fake point is used to const-time mult\n      const { endo } = CURVE;\n      if (endo) {\n        const { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n        let { p: k1p, f: f1p } = this.wNAF(k1);\n        let { p: k2p, f: f2p } = this.wNAF(k2);\n        k1p = wnaf.constTimeNegate(k1neg, k1p);\n        k2p = wnaf.constTimeNegate(k2neg, k2p);\n        k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n        point = k1p.add(k2p);\n        fake = f1p.add(f2p);\n      } else {\n        const { p, f } = this.wNAF(n);\n        point = p;\n        fake = f;\n      }\n      // Normalize `z` for both points, but return only real one\n      return Point.normalizeZ([point, fake])[0];\n    }\n\n    /**\n     * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n     * Not using Strauss-Shamir trick: precomputation tables are faster.\n     * The trick could be useful if both P and Q are not G (not in our case).\n     * @returns non-zero affine point\n     */\n    multiplyAndAddUnsafe(Q: Point, a: bigint, b: bigint): Point | undefined {\n      const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n      const mul = (\n        P: Point,\n        a: bigint // Select faster multiply() method\n      ) => (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a));\n      const sum = mul(this, a).add(mul(Q, b));\n      return sum.is0() ? undefined : sum;\n    }\n\n    // Converts Projective point to affine (x, y) coordinates.\n    // Can accept precomputed Z^-1 - for example, from invertBatch.\n    // (x, y, z) ∋ (x=x/z, y=y/z)\n    toAffine(iz?: T): AffinePoint<T> {\n      const { px: x, py: y, pz: z } = this;\n      const is0 = this.is0();\n      // If invZ was 0, we return zero point. However we still want to execute\n      // all operations, so we replace invZ with a random number, 1.\n      if (iz == null) iz = is0 ? Fp.ONE : Fp.inv(z);\n      const ax = Fp.mul(x, iz);\n      const ay = Fp.mul(y, iz);\n      const zz = Fp.mul(z, iz);\n      if (is0) return { x: Fp.ZERO, y: Fp.ZERO };\n      if (!Fp.eql(zz, Fp.ONE)) throw new Error('invZ was invalid');\n      return { x: ax, y: ay };\n    }\n    isTorsionFree(): boolean {\n      const { h: cofactor, isTorsionFree } = CURVE;\n      if (cofactor === _1n) return true; // No subgroups, always torsion-free\n      if (isTorsionFree) return isTorsionFree(Point, this);\n      throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n    }\n    clearCofactor(): Point {\n      const { h: cofactor, clearCofactor } = CURVE;\n      if (cofactor === _1n) return this; // Fast-path\n      if (clearCofactor) return clearCofactor(Point, this) as Point;\n      return this.multiplyUnsafe(CURVE.h);\n    }\n\n    toRawBytes(isCompressed = true): Uint8Array {\n      this.assertValidity();\n      return toBytes(Point, this, isCompressed);\n    }\n\n    toHex(isCompressed = true): string {\n      return ut.bytesToHex(this.toRawBytes(isCompressed));\n    }\n  }\n  const _bits = CURVE.nBitLength;\n  const wnaf = wNAF(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n  // Validate if generator point is on curve\n  return {\n    CURVE,\n    ProjectivePoint: Point as ProjConstructor<T>,\n    normPrivateKeyToScalar,\n    weierstrassEquation,\n    isWithinCurveOrder,\n  };\n}\n\n// Instance\nexport interface SignatureType {\n  readonly r: bigint;\n  readonly s: bigint;\n  readonly recovery?: number;\n  assertValidity(): void;\n  addRecoveryBit(recovery: number): RecoveredSignatureType;\n  hasHighS(): boolean;\n  normalizeS(): SignatureType;\n  recoverPublicKey(msgHash: Hex): ProjPointType<bigint>;\n  toCompactRawBytes(): Uint8Array;\n  toCompactHex(): string;\n  // DER-encoded\n  toDERRawBytes(isCompressed?: boolean): Uint8Array;\n  toDERHex(isCompressed?: boolean): string;\n}\nexport type RecoveredSignatureType = SignatureType & {\n  readonly recovery: number;\n};\n// Static methods\nexport type SignatureConstructor = {\n  new (r: bigint, s: bigint): SignatureType;\n  fromCompact(hex: Hex): SignatureType;\n  fromDER(hex: Hex): SignatureType;\n};\ntype SignatureLike = { r: bigint; s: bigint };\n\nexport type PubKey = Hex | ProjPointType<bigint>;\n\nexport type CurveType = BasicWCurve<bigint> & {\n  hash: CHash; // CHash not FHash because we need outputLen for DRBG\n  hmac: HmacFnSync;\n  randomBytes: (bytesLength?: number) => Uint8Array;\n  lowS?: boolean;\n  bits2int?: (bytes: Uint8Array) => bigint;\n  bits2int_modN?: (bytes: Uint8Array) => bigint;\n};\n\nfunction validateOpts(curve: CurveType) {\n  const opts = validateBasic(curve);\n  ut.validateObject(\n    opts,\n    {\n      hash: 'hash',\n      hmac: 'function',\n      randomBytes: 'function',\n    },\n    {\n      bits2int: 'function',\n      bits2int_modN: 'function',\n      lowS: 'boolean',\n    }\n  );\n  return Object.freeze({ lowS: true, ...opts } as const);\n}\n\nexport type CurveFn = {\n  CURVE: ReturnType<typeof validateOpts>;\n  getPublicKey: (privateKey: PrivKey, isCompressed?: boolean) => Uint8Array;\n  getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array;\n  sign: (msgHash: Hex, privKey: PrivKey, opts?: SignOpts) => RecoveredSignatureType;\n  verify: (signature: Hex | SignatureLike, msgHash: Hex, publicKey: Hex, opts?: VerOpts) => boolean;\n  ProjectivePoint: ProjConstructor<bigint>;\n  Signature: SignatureConstructor;\n  utils: {\n    normPrivateKeyToScalar: (key: PrivKey) => bigint;\n    isValidPrivateKey(privateKey: PrivKey): boolean;\n    randomPrivateKey: () => Uint8Array;\n    precompute: (windowSize?: number, point?: ProjPointType<bigint>) => ProjPointType<bigint>;\n  };\n};\n\nexport function weierstrass(curveDef: CurveType): CurveFn {\n  const CURVE = validateOpts(curveDef) as ReturnType<typeof validateOpts>;\n  const { Fp, n: CURVE_ORDER } = CURVE;\n  const compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n  const uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n\n  function isValidFieldElement(num: bigint): boolean {\n    return _0n < num && num < Fp.ORDER; // 0 is banned since it's not invertible FE\n  }\n  function modN(a: bigint) {\n    return mod.mod(a, CURVE_ORDER);\n  }\n  function invN(a: bigint) {\n    return mod.invert(a, CURVE_ORDER);\n  }\n\n  const {\n    ProjectivePoint: Point,\n    normPrivateKeyToScalar,\n    weierstrassEquation,\n    isWithinCurveOrder,\n  } = weierstrassPoints({\n    ...CURVE,\n    toBytes(_c, point, isCompressed: boolean): Uint8Array {\n      const a = point.toAffine();\n      const x = Fp.toBytes(a.x);\n      const cat = ut.concatBytes;\n      if (isCompressed) {\n        return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n      } else {\n        return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n      }\n    },\n    fromBytes(bytes: Uint8Array) {\n      const len = bytes.length;\n      const head = bytes[0];\n      const tail = bytes.subarray(1);\n      // this.assertValidity() is done inside of fromHex\n      if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n        const x = ut.bytesToNumberBE(tail);\n        if (!isValidFieldElement(x)) throw new Error('Point is not on curve');\n        const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n        let y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n        const isYOdd = (y & _1n) === _1n;\n        // ECDSA\n        const isHeadOdd = (head & 1) === 1;\n        if (isHeadOdd !== isYOdd) y = Fp.neg(y);\n        return { x, y };\n      } else if (len === uncompressedLen && head === 0x04) {\n        const x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n        const y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n        return { x, y };\n      } else {\n        throw new Error(\n          `Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`\n        );\n      }\n    },\n  });\n  const numToNByteStr = (num: bigint): string =>\n    ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n\n  function isBiggerThanHalfOrder(number: bigint) {\n    const HALF = CURVE_ORDER >> _1n;\n    return number > HALF;\n  }\n\n  function normalizeS(s: bigint) {\n    return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n  }\n  // slice bytes num\n  const slcNum = (b: Uint8Array, from: number, to: number) => ut.bytesToNumberBE(b.slice(from, to));\n\n  /**\n   * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n   */\n  class Signature implements SignatureType {\n    constructor(\n      readonly r: bigint,\n      readonly s: bigint,\n      readonly recovery?: number\n    ) {\n      this.assertValidity();\n    }\n\n    // pair (bytes of r, bytes of s)\n    static fromCompact(hex: Hex) {\n      const l = CURVE.nByteLength;\n      hex = ensureBytes('compactSignature', hex, l * 2);\n      return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n    }\n\n    // DER encoded ECDSA signature\n    // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n    static fromDER(hex: Hex) {\n      const { r, s } = DER.toSig(ensureBytes('DER', hex));\n      return new Signature(r, s);\n    }\n\n    assertValidity(): void {\n      // can use assertGE here\n      if (!isWithinCurveOrder(this.r)) throw new Error('r must be 0 < r < CURVE.n');\n      if (!isWithinCurveOrder(this.s)) throw new Error('s must be 0 < s < CURVE.n');\n    }\n\n    addRecoveryBit(recovery: number): RecoveredSignature {\n      return new Signature(this.r, this.s, recovery) as RecoveredSignature;\n    }\n\n    recoverPublicKey(msgHash: Hex): typeof Point.BASE {\n      const { r, s, recovery: rec } = this;\n      const h = bits2int_modN(ensureBytes('msgHash', msgHash)); // Truncate hash\n      if (rec == null || ![0, 1, 2, 3].includes(rec)) throw new Error('recovery id invalid');\n      const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n      if (radj >= Fp.ORDER) throw new Error('recovery id 2 or 3 invalid');\n      const prefix = (rec & 1) === 0 ? '02' : '03';\n      const R = Point.fromHex(prefix + numToNByteStr(radj));\n      const ir = invN(radj); // r^-1\n      const u1 = modN(-h * ir); // -hr^-1\n      const u2 = modN(s * ir); // sr^-1\n      const Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n      if (!Q) throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n      Q.assertValidity();\n      return Q;\n    }\n\n    // Signatures should be low-s, to prevent malleability.\n    hasHighS(): boolean {\n      return isBiggerThanHalfOrder(this.s);\n    }\n\n    normalizeS() {\n      return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n    }\n\n    // DER-encoded\n    toDERRawBytes() {\n      return ut.hexToBytes(this.toDERHex());\n    }\n    toDERHex() {\n      return DER.hexFromSig({ r: this.r, s: this.s });\n    }\n\n    // padded bytes of r, then padded bytes of s\n    toCompactRawBytes() {\n      return ut.hexToBytes(this.toCompactHex());\n    }\n    toCompactHex() {\n      return numToNByteStr(this.r) + numToNByteStr(this.s);\n    }\n  }\n  type RecoveredSignature = Signature & { recovery: number };\n\n  const utils = {\n    isValidPrivateKey(privateKey: PrivKey) {\n      try {\n        normPrivateKeyToScalar(privateKey);\n        return true;\n      } catch (error) {\n        return false;\n      }\n    },\n    normPrivateKeyToScalar: normPrivateKeyToScalar,\n\n    /**\n     * Produces cryptographically secure private key from random of size\n     * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n     */\n    randomPrivateKey: (): Uint8Array => {\n      const length = mod.getMinHashLength(CURVE.n);\n      return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n    },\n\n    /**\n     * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n     * Allows to massively speed-up `point.multiply(scalar)`.\n     * @returns cached point\n     * @example\n     * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n     * fast.multiply(privKey); // much faster ECDH now\n     */\n    precompute(windowSize = 8, point = Point.BASE): typeof Point.BASE {\n      point._setWindowSize(windowSize);\n      point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n      return point;\n    },\n  };\n\n  /**\n   * Computes public key for a private key. Checks for validity of the private key.\n   * @param privateKey private key\n   * @param isCompressed whether to return compact (default), or full key\n   * @returns Public key, full when isCompressed=false; short when isCompressed=true\n   */\n  function getPublicKey(privateKey: PrivKey, isCompressed = true): Uint8Array {\n    return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n  }\n\n  /**\n   * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n   */\n  function isProbPub(item: PrivKey | PubKey): boolean {\n    const arr = ut.isBytes(item);\n    const str = typeof item === 'string';\n    const len = (arr || str) && (item as Hex).length;\n    if (arr) return len === compressedLen || len === uncompressedLen;\n    if (str) return len === 2 * compressedLen || len === 2 * uncompressedLen;\n    if (item instanceof Point) return true;\n    return false;\n  }\n\n  /**\n   * ECDH (Elliptic Curve Diffie Hellman).\n   * Computes shared public key from private key and public key.\n   * Checks: 1) private key validity 2) shared key is on-curve.\n   * Does NOT hash the result.\n   * @param privateA private key\n   * @param publicB different public key\n   * @param isCompressed whether to return compact (default), or full key\n   * @returns shared public key\n   */\n  function getSharedSecret(privateA: PrivKey, publicB: Hex, isCompressed = true): Uint8Array {\n    if (isProbPub(privateA)) throw new Error('first arg must be private key');\n    if (!isProbPub(publicB)) throw new Error('second arg must be public key');\n    const b = Point.fromHex(publicB); // check for being on-curve\n    return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n  }\n\n  // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n  // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n  // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n  // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n  const bits2int =\n    CURVE.bits2int ||\n    function (bytes: Uint8Array): bigint {\n      // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n      // for some cases, since bytes.length * 8 is not actual bitLength.\n      const num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n      const delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n      return delta > 0 ? num >> BigInt(delta) : num;\n    };\n  const bits2int_modN =\n    CURVE.bits2int_modN ||\n    function (bytes: Uint8Array): bigint {\n      return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n    };\n  // NOTE: pads output with zero as per spec\n  const ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n  /**\n   * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n   */\n  function int2octets(num: bigint): Uint8Array {\n    if (typeof num !== 'bigint') throw new Error('bigint expected');\n    if (!(_0n <= num && num < ORDER_MASK))\n      throw new Error(`bigint expected < 2^${CURVE.nBitLength}`);\n    // works with order, can have different size than numToField!\n    return ut.numberToBytesBE(num, CURVE.nByteLength);\n  }\n\n  // Steps A, D of RFC6979 3.2\n  // Creates RFC6979 seed; converts msg/privKey to numbers.\n  // Used only in sign, not in verify.\n  // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n  // Also it can be bigger for P224 + SHA256\n  function prepSig(msgHash: Hex, privateKey: PrivKey, opts = defaultSigOpts) {\n    if (['recovered', 'canonical'].some((k) => k in opts))\n      throw new Error('sign() legacy options not supported');\n    const { hash, randomBytes } = CURVE;\n    let { lowS, prehash, extraEntropy: ent } = opts; // generates low-s sigs by default\n    if (lowS == null) lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n    msgHash = ensureBytes('msgHash', msgHash);\n    if (prehash) msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n\n    // We can't later call bits2octets, since nested bits2int is broken for curves\n    // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n    // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n    const h1int = bits2int_modN(msgHash);\n    const d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n    const seedArgs = [int2octets(d), int2octets(h1int)];\n    // extraEntropy. RFC6979 3.6: additional k' (optional).\n    if (ent != null) {\n      // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n      const e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n      seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n    }\n    const seed = ut.concatBytes(...seedArgs); // Step D of RFC6979 3.2\n    const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n    // Converts signature params into point w r/s, checks result for validity.\n    function k2sig(kBytes: Uint8Array): RecoveredSignature | undefined {\n      // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n      const k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n      if (!isWithinCurveOrder(k)) return; // Important: all mod() calls here must be done over N\n      const ik = invN(k); // k^-1 mod n\n      const q = Point.BASE.multiply(k).toAffine(); // q = Gk\n      const r = modN(q.x); // r = q.x mod n\n      if (r === _0n) return;\n      // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n      // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n      // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n      const s = modN(ik * modN(m + r * d)); // Not using blinding here\n      if (s === _0n) return;\n      let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n      let normS = s;\n      if (lowS && isBiggerThanHalfOrder(s)) {\n        normS = normalizeS(s); // if lowS was passed, ensure s is always\n        recovery ^= 1; // // in the bottom half of N\n      }\n      return new Signature(r, normS, recovery) as RecoveredSignature; // use normS, not s\n    }\n    return { seed, k2sig };\n  }\n  const defaultSigOpts: SignOpts = { lowS: CURVE.lowS, prehash: false };\n  const defaultVerOpts: VerOpts = { lowS: CURVE.lowS, prehash: false };\n\n  /**\n   * Signs message hash with a private key.\n   * ```\n   * sign(m, d, k) where\n   *   (x, y) = G × k\n   *   r = x mod n\n   *   s = (m + dr)/k mod n\n   * ```\n   * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n   * @param privKey private key\n   * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n   * @returns signature with recovery param\n   */\n  function sign(msgHash: Hex, privKey: PrivKey, opts = defaultSigOpts): RecoveredSignature {\n    const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n    const C = CURVE;\n    const drbg = ut.createHmacDrbg<RecoveredSignature>(C.hash.outputLen, C.nByteLength, C.hmac);\n    return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n  }\n\n  // Enable precomputes. Slows down first publicKey computation by 20ms.\n  Point.BASE._setWindowSize(8);\n  // utils.precompute(8, ProjectivePoint.BASE)\n\n  /**\n   * Verifies a signature against message hash and public key.\n   * Rejects lowS signatures by default: to override,\n   * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n   *\n   * ```\n   * verify(r, s, h, P) where\n   *   U1 = hs^-1 mod n\n   *   U2 = rs^-1 mod n\n   *   R = U1⋅G - U2⋅P\n   *   mod(R.x, n) == r\n   * ```\n   */\n  function verify(\n    signature: Hex | SignatureLike,\n    msgHash: Hex,\n    publicKey: Hex,\n    opts = defaultVerOpts\n  ): boolean {\n    const sg = signature;\n    msgHash = ensureBytes('msgHash', msgHash);\n    publicKey = ensureBytes('publicKey', publicKey);\n    if ('strict' in opts) throw new Error('options.strict was renamed to lowS');\n    const { lowS, prehash } = opts;\n\n    let _sig: Signature | undefined = undefined;\n    let P: ProjPointType<bigint>;\n    try {\n      if (typeof sg === 'string' || ut.isBytes(sg)) {\n        // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n        // Since DER can also be 2*nByteLength bytes, we check for it first.\n        try {\n          _sig = Signature.fromDER(sg);\n        } catch (derError) {\n          if (!(derError instanceof DER.Err)) throw derError;\n          _sig = Signature.fromCompact(sg);\n        }\n      } else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n        const { r, s } = sg;\n        _sig = new Signature(r, s);\n      } else {\n        throw new Error('PARSE');\n      }\n      P = Point.fromHex(publicKey);\n    } catch (error) {\n      if ((error as Error).message === 'PARSE')\n        throw new Error(`signature must be Signature instance, Uint8Array or hex string`);\n      return false;\n    }\n    if (lowS && _sig.hasHighS()) return false;\n    if (prehash) msgHash = CURVE.hash(msgHash);\n    const { r, s } = _sig;\n    const h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n    const is = invN(s); // s^-1\n    const u1 = modN(h * is); // u1 = hs^-1 mod n\n    const u2 = modN(r * is); // u2 = rs^-1 mod n\n    const R = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)?.toAffine(); // R = u1⋅G + u2⋅P\n    if (!R) return false;\n    const v = modN(R.x);\n    return v === r;\n  }\n  return {\n    CURVE,\n    getPublicKey,\n    getSharedSecret,\n    sign,\n    verify,\n    ProjectivePoint: Point,\n    Signature,\n    utils,\n  };\n}\n\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio<T>(Fp: mod.IField<T>, Z: T) {\n  // Generic implementation\n  const q = Fp.ORDER;\n  let l = _0n;\n  for (let o = q - _1n; o % _2n === _0n; o /= _2n) l += _1n;\n  const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n  // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n  // 2n ** c1 == 2n << (c1-1)\n  const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n  const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n  const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1)  # Integer arithmetic\n  const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2            # Integer arithmetic\n  const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1                # Integer arithmetic\n  const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1)                  # Integer arithmetic\n  const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n  const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n  let sqrtRatio = (u: T, v: T): { isValid: boolean; value: T } => {\n    let tv1 = c6; // 1. tv1 = c6\n    let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n    let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n    tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n    let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n    tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n    tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n    tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n    tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n    let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n    tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n    let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n    tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n    tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n    tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n    tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n    // 17. for i in (c1, c1 - 1, ..., 2):\n    for (let i = c1; i > _1n; i--) {\n      let tv5 = i - _2n; // 18.    tv5 = i - 2\n      tv5 = _2n << (tv5 - _1n); // 19.    tv5 = 2^tv5\n      let tvv5 = Fp.pow(tv4, tv5); // 20.    tv5 = tv4^tv5\n      const e1 = Fp.eql(tvv5, Fp.ONE); // 21.    e1 = tv5 == 1\n      tv2 = Fp.mul(tv3, tv1); // 22.    tv2 = tv3 * tv1\n      tv1 = Fp.mul(tv1, tv1); // 23.    tv1 = tv1 * tv1\n      tvv5 = Fp.mul(tv4, tv1); // 24.    tv5 = tv4 * tv1\n      tv3 = Fp.cmov(tv2, tv3, e1); // 25.    tv3 = CMOV(tv2, tv3, e1)\n      tv4 = Fp.cmov(tvv5, tv4, e1); // 26.    tv4 = CMOV(tv5, tv4, e1)\n    }\n    return { isValid: isQR, value: tv3 };\n  };\n  if (Fp.ORDER % _4n === _3n) {\n    // sqrt_ratio_3mod4(u, v)\n    const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4     # Integer arithmetic\n    const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n    sqrtRatio = (u: T, v: T) => {\n      let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n      const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n      tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n      let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n      y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n      const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n      const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n      const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n      let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n      return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n    };\n  }\n  // No curves uses that\n  // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n  return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU<T>(\n  Fp: mod.IField<T>,\n  opts: {\n    A: T;\n    B: T;\n    Z: T;\n  }\n) {\n  mod.validateField(Fp);\n  if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n    throw new Error('mapToCurveSimpleSWU: invalid opts');\n  const sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n  if (!Fp.isOdd) throw new Error('Fp.isOdd is not implemented!');\n  // Input: u, an element of F.\n  // Output: (x, y), a point on E.\n  return (u: T): { x: T; y: T } => {\n    // prettier-ignore\n    let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n    tv1 = Fp.sqr(u); // 1.  tv1 = u^2\n    tv1 = Fp.mul(tv1, opts.Z); // 2.  tv1 = Z * tv1\n    tv2 = Fp.sqr(tv1); // 3.  tv2 = tv1^2\n    tv2 = Fp.add(tv2, tv1); // 4.  tv2 = tv2 + tv1\n    tv3 = Fp.add(tv2, Fp.ONE); // 5.  tv3 = tv2 + 1\n    tv3 = Fp.mul(tv3, opts.B); // 6.  tv3 = B * tv3\n    tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7.  tv4 = CMOV(Z, -tv2, tv2 != 0)\n    tv4 = Fp.mul(tv4, opts.A); // 8.  tv4 = A * tv4\n    tv2 = Fp.sqr(tv3); // 9.  tv2 = tv3^2\n    tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n    tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n    tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n    tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n    tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n    tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n    tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n    x = Fp.mul(tv1, tv3); // 17.   x = tv1 * tv3\n    const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n    y = Fp.mul(tv1, u); // 19.   y = tv1 * u  -> Z * u^3 * y1\n    y = Fp.mul(y, value); // 20.   y = y * y1\n    x = Fp.cmov(x, tv3, isValid); // 21.   x = CMOV(x, tv3, is_gx1_square)\n    y = Fp.cmov(y, value, isValid); // 22.   y = CMOV(y, y1, is_gx1_square)\n    const e1 = Fp.isOdd!(u) === Fp.isOdd!(y); // 23.  e1 = sgn0(u) == sgn0(y)\n    y = Fp.cmov(Fp.neg(y), y, e1); // 24.   y = CMOV(-y, y, e1)\n    x = Fp.div(x, tv4); // 25.   x = x / tv4\n    return { x, y };\n  };\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { weierstrass, CurveType } from './abstract/weierstrass.js';\nimport { CHash } from './abstract/utils.js';\n\n// connects noble-curves to noble-hashes\nexport function getHash(hash: CHash) {\n  return {\n    hash,\n    hmac: (key: Uint8Array, ...msgs: Uint8Array[]) => hmac(hash, key, concatBytes(...msgs)),\n    randomBytes,\n  };\n}\n// Same API as @noble/hashes, with ability to create curve with custom hash\ntype CurveDef = Readonly<Omit<CurveType, 'hash' | 'hmac' | 'randomBytes'>>;\nexport function createCurve(curveDef: CurveDef, defHash: CHash) {\n  const create = (hash: CHash) => weierstrass({ ...curveDef, ...getHash(hash) });\n  return Object.freeze({ ...create(defHash), create });\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport { ProjPointType as PointType, mapToCurveSimpleSWU } from './abstract/weierstrass.js';\nimport type { Hex, PrivKey } from './abstract/utils.js';\nimport { bytesToNumberBE, concatBytes, ensureBytes, numberToBytesBE } from './abstract/utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { createCurve } from './_shortw_utils.js';\n\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a: bigint, b: bigint) => (a + b / _2n) / b;\n\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y: bigint): bigint {\n  const P = secp256k1P;\n  // prettier-ignore\n  const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n  // prettier-ignore\n  const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n  const b2 = (y * y * y) % P; // x^3, 11\n  const b3 = (b2 * b2 * y) % P; // x^7\n  const b6 = (pow2(b3, _3n, P) * b3) % P;\n  const b9 = (pow2(b6, _3n, P) * b3) % P;\n  const b11 = (pow2(b9, _2n, P) * b2) % P;\n  const b22 = (pow2(b11, _11n, P) * b11) % P;\n  const b44 = (pow2(b22, _22n, P) * b22) % P;\n  const b88 = (pow2(b44, _44n, P) * b44) % P;\n  const b176 = (pow2(b88, _88n, P) * b88) % P;\n  const b220 = (pow2(b176, _44n, P) * b44) % P;\n  const b223 = (pow2(b220, _3n, P) * b3) % P;\n  const t1 = (pow2(b223, _23n, P) * b22) % P;\n  const t2 = (pow2(t1, _6n, P) * b2) % P;\n  const root = pow2(t2, _2n, P);\n  if (!Fp.eql(Fp.sqr(root), y)) throw new Error('Cannot find square root');\n  return root;\n}\n\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n\nexport const secp256k1 = createCurve(\n  {\n    a: BigInt(0), // equation params: a, b\n    b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n    Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n    n: secp256k1N, // Curve order, total count of valid points in the field\n    // Base point (x, y) aka generator point\n    Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n    Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n    h: BigInt(1), // Cofactor\n    lowS: true, // Allow only low-S signatures by default in sign() and verify()\n    /**\n     * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n     * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n     * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n     * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n     */\n    endo: {\n      beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n      splitScalar: (k: bigint) => {\n        const n = secp256k1N;\n        const a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n        const b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n        const a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n        const b2 = a1;\n        const POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n\n        const c1 = divNearest(b2 * k, n);\n        const c2 = divNearest(-b1 * k, n);\n        let k1 = mod(k - c1 * a1 - c2 * a2, n);\n        let k2 = mod(-c1 * b1 - c2 * b2, n);\n        const k1neg = k1 > POW_2_128;\n        const k2neg = k2 > POW_2_128;\n        if (k1neg) k1 = n - k1;\n        if (k2neg) k2 = n - k2;\n        if (k1 > POW_2_128 || k2 > POW_2_128) {\n          throw new Error('splitScalar: Endomorphism failed, k=' + k);\n        }\n        return { k1neg, k1, k2neg, k2 };\n      },\n    },\n  },\n  sha256\n);\n\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nconst _0n = BigInt(0);\nconst fe = (x: bigint) => typeof x === 'bigint' && _0n < x && x < secp256k1P;\nconst ge = (x: bigint) => typeof x === 'bigint' && _0n < x && x < secp256k1N;\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES: { [tag: string]: Uint8Array } = {};\nfunction taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array {\n  let tagP = TAGGED_HASH_PREFIXES[tag];\n  if (tagP === undefined) {\n    const tagH = sha256(Uint8Array.from(tag, (c) => c.charCodeAt(0)));\n    tagP = concatBytes(tagH, tagH);\n    TAGGED_HASH_PREFIXES[tag] = tagP;\n  }\n  return sha256(concatBytes(tagP, ...messages));\n}\n\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point: PointType<bigint>) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n: bigint) => numberToBytesBE(n, 32);\nconst modP = (x: bigint) => mod(x, secp256k1P);\nconst modN = (x: bigint) => mod(x, secp256k1N);\nconst Point = secp256k1.ProjectivePoint;\nconst GmulAdd = (Q: PointType<bigint>, a: bigint, b: bigint) =>\n  Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv: PrivKey) {\n  let d_ = secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n  let p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n  const scalar = p.hasEvenY() ? d_ : modN(-d_);\n  return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x: bigint): PointType<bigint> {\n  if (!fe(x)) throw new Error('bad x: need 0 < x < p'); // Fail if x ≥ p.\n  const xx = modP(x * x);\n  const c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n  let y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n  if (y % _2n !== _0n) y = modP(-y); // Return the unique point P such that x(P) = x and\n  const p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n  p.assertValidity();\n  return p;\n}\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args: Uint8Array[]): bigint {\n  return modN(bytesToNumberBE(taggedHash('BIP0340/challenge', ...args)));\n}\n\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey: Hex): Uint8Array {\n  return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(\n  message: Hex,\n  privateKey: PrivKey,\n  auxRand: Hex = randomBytes(32)\n): Uint8Array {\n  const m = ensureBytes('message', message);\n  const { bytes: px, scalar: d } = schnorrGetExtPubKey(privateKey); // checks for isWithinCurveOrder\n  const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n  const t = numTo32b(d ^ bytesToNumberBE(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n  const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n  const k_ = modN(bytesToNumberBE(rand)); // Let k' = int(rand) mod n\n  if (k_ === _0n) throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n  const { bytes: rx, scalar: k } = schnorrGetExtPubKey(k_); // Let R = k'⋅G.\n  const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n  const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n  sig.set(rx, 0);\n  sig.set(numTo32b(modN(k + e * d)), 32);\n  // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n  if (!schnorrVerify(sig, m, px)) throw new Error('sign: Invalid signature produced');\n  return sig;\n}\n\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean {\n  const sig = ensureBytes('signature', signature, 64);\n  const m = ensureBytes('message', message);\n  const pub = ensureBytes('publicKey', publicKey, 32);\n  try {\n    const P = lift_x(bytesToNumberBE(pub)); // P = lift_x(int(pk)); fail if that fails\n    const r = bytesToNumberBE(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n    if (!fe(r)) return false;\n    const s = bytesToNumberBE(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n    if (!ge(s)) return false;\n    const e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n    const R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n    if (!R || !R.hasEvenY() || R.toAffine().x !== r) return false; // -eP == (n-e)P\n    return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n  } catch (error) {\n    return false;\n  }\n}\n\nexport const schnorr = /* @__PURE__ */ (() => ({\n  getPublicKey: schnorrGetPublicKey,\n  sign: schnorrSign,\n  verify: schnorrVerify,\n  utils: {\n    randomPrivateKey: secp256k1.utils.randomPrivateKey,\n    lift_x,\n    pointToBytes,\n    numberToBytesBE,\n    bytesToNumberBE,\n    taggedHash,\n    mod,\n  },\n}))();\n\nconst isoMap = /* @__PURE__ */ (() =>\n  isogenyMap(\n    Fp,\n    [\n      // xNum\n      [\n        '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n        '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n        '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n        '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n      ],\n      // xDen\n      [\n        '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n        '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n        '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n      ],\n      // yNum\n      [\n        '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n        '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n        '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n        '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n      ],\n      // yDen\n      [\n        '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n        '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n        '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n        '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n      ],\n    ].map((i) => i.map((j) => BigInt(j))) as [bigint[], bigint[], bigint[], bigint[]]\n  ))();\nconst mapSWU = /* @__PURE__ */ (() =>\n  mapToCurveSimpleSWU(Fp, {\n    A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n    B: BigInt('1771'),\n    Z: Fp.create(BigInt('-11')),\n  }))();\nconst htf = /* @__PURE__ */ (() =>\n  createHasher(\n    secp256k1.ProjectivePoint,\n    (scalars: bigint[]) => {\n      const { x, y } = mapSWU(Fp.create(scalars[0]));\n      return isoMap(x, y);\n    },\n    {\n      DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n      encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n      p: Fp.ORDER,\n      m: 1,\n      k: 128,\n      expand: 'xmd',\n      hash: sha256,\n    }\n  ))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n","export const BN_BE_OPTS = { isLe: false };\nexport const BN_LE_OPTS = { isLe: true };\nexport const BN_LE_16_OPTS = { bitLength: 16, isLe: true };\nexport const BN_BE_32_OPTS = { bitLength: 32, isLe: false };\nexport const BN_LE_32_OPTS = { bitLength: 32, isLe: true };\nexport const BN_BE_256_OPTS = { bitLength: 256, isLe: false };\nexport const BN_LE_256_OPTS = { bitLength: 256, isLe: true };\nexport const BN_LE_512_OPTS = { bitLength: 512, isLe: true };\n","import { u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { keccakAsU8a } from '../keccak/index.js';\nimport { secp256k1Expand } from '../secp256k1/index.js';\nfunction getH160(u8a) {\n    if ([33, 65].includes(u8a.length)) {\n        u8a = keccakAsU8a(secp256k1Expand(u8a));\n    }\n    return u8a.slice(-20);\n}\nexport function ethereumEncode(addressOrPublic) {\n    if (!addressOrPublic) {\n        return '0x';\n    }\n    const u8aAddress = u8aToU8a(addressOrPublic);\n    if (![20, 32, 33, 65].includes(u8aAddress.length)) {\n        throw new Error(`Invalid address or publicKey provided, received ${u8aAddress.length} bytes input`);\n    }\n    const address = u8aToHex(getH160(u8aAddress), -1, false);\n    const hash = u8aToHex(keccakAsU8a(address), -1, false);\n    let result = '';\n    for (let i = 0; i < 40; i++) {\n        result = `${result}${parseInt(hash[i], 16) > 7 ? address[i].toUpperCase() : address[i]}`;\n    }\n    return `0x${result}`;\n}\n","import { secp256k1 } from '@noble/curves/secp256k1';\nimport { bnToU8a, hasBigInt, u8aConcat } from '@polkadot/util';\nimport { isReady, secp256k1Expand as wasm } from '@polkadot/wasm-crypto';\nimport { BN_BE_256_OPTS } from '../bn.js';\nexport function secp256k1Expand(publicKey, onlyJs) {\n    if (![33, 65].includes(publicKey.length)) {\n        throw new Error(`Invalid publicKey provided, received ${publicKey.length} bytes input`);\n    }\n    if (publicKey.length === 65) {\n        return publicKey.subarray(1);\n    }\n    if (!hasBigInt || (!onlyJs && isReady())) {\n        return wasm(publicKey).subarray(1);\n    }\n    const { px, py } = secp256k1.ProjectivePoint.fromHex(publicKey);\n    return u8aConcat(bnToU8a(px, BN_BE_256_OPTS), bnToU8a(py, BN_BE_256_OPTS));\n}\n","import { U8aFixed } from '@polkadot/types-codec';\nimport { hexToU8a, isHex, isString, isU8a, u8aToU8a } from '@polkadot/util';\nimport { ethereumEncode, isEthereumAddress } from '@polkadot/util-crypto';\n/** @internal */\nfunction decodeAccountId(value) {\n    if (isU8a(value) || Array.isArray(value)) {\n        return u8aToU8a(value);\n    }\n    else if (isHex(value) || isEthereumAddress(value.toString())) {\n        return hexToU8a(value.toString());\n    }\n    else if (isString(value)) {\n        return u8aToU8a(value);\n    }\n    return value;\n}\n/**\n * @name GenericEthereumAccountId\n * @description\n * A wrapper around an Ethereum-compatible AccountId. Since we are dealing with\n * underlying addresses (20 bytes in length), we extend from U8aFixed which is\n * just a Uint8Array wrapper with a fixed length.\n */\nexport class GenericEthereumAccountId extends U8aFixed {\n    constructor(registry, value = new Uint8Array()) {\n        super(registry, decodeAccountId(value), 160);\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return !!other && super.eq(decodeAccountId(other));\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return this.toJSON();\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.toString();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.toJSON();\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return ethereumEncode(this);\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'AccountId';\n    }\n}\n","import { AbstractBase } from '@polkadot/types-codec';\nimport { isBigInt, isBn, isHex, isNumber, isU8a, u8aConcat, u8aToBn, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { GenericAccountIndex } from '../generic/AccountIndex.js';\nimport { GenericEthereumAccountId } from './AccountId.js';\nexport const ACCOUNT_ID_PREFIX = new Uint8Array([0xff]);\n/** @internal */\nfunction decodeString(registry, value) {\n    const decoded = decodeAddress(value);\n    return decoded.length === 20\n        ? registry.createTypeUnsafe('EthereumAccountId', [decoded])\n        : registry.createTypeUnsafe('AccountIndex', [u8aToBn(decoded)]);\n}\n/** @internal */\nfunction decodeU8a(registry, value) {\n    // This allows us to instantiate an address with a raw publicKey. Do this first before\n    // we checking the first byte, otherwise we may split an already-existent valid address\n    if (value.length === 20) {\n        return registry.createTypeUnsafe('EthereumAccountId', [value]);\n    }\n    else if (value[0] === 0xff) {\n        return registry.createTypeUnsafe('EthereumAccountId', [value.subarray(1)]);\n    }\n    const [offset, length] = GenericAccountIndex.readLength(value);\n    return registry.createTypeUnsafe('AccountIndex', [u8aToBn(value.subarray(offset, offset + length))]);\n}\nfunction decodeAddressOrIndex(registry, value) {\n    return value instanceof GenericEthereumLookupSource\n        ? value.inner\n        : value instanceof GenericEthereumAccountId || value instanceof GenericAccountIndex\n            ? value\n            : isU8a(value) || Array.isArray(value) || isHex(value)\n                ? decodeU8a(registry, u8aToU8a(value))\n                : isBn(value) || isNumber(value) || isBigInt(value)\n                    ? registry.createTypeUnsafe('AccountIndex', [value])\n                    : decodeString(registry, value);\n}\n/**\n * @name GenericEthereumLookupSource\n * @description\n * A wrapper around an EthereumAccountId and/or AccountIndex that is encoded with a prefix.\n * Since we are dealing with underlying publicKeys (or shorter encoded addresses),\n * we extend from Base with an AccountId/AccountIndex wrapper. Basically the Address\n * is encoded as `[ <prefix-byte>, ...publicKey/...bytes ]` as per spec\n */\nexport class GenericEthereumLookupSource extends AbstractBase {\n    constructor(registry, value = new Uint8Array()) {\n        super(registry, decodeAddressOrIndex(registry, value));\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        const rawLength = this._rawLength;\n        return rawLength + (\n        // for 1 byte AccountIndexes, we are not adding a specific prefix\n        rawLength > 1\n            ? 1\n            : 0);\n    }\n    /**\n     * @description The length of the raw value, either AccountIndex or AccountId\n     */\n    get _rawLength() {\n        return this.inner instanceof GenericAccountIndex\n            ? GenericAccountIndex.calcLength(this.inner)\n            : this.inner.encodedLength;\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        return u8aToHex(this.toU8a());\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Address';\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        const encoded = this.inner.toU8a().subarray(0, this._rawLength);\n        return isBare\n            ? encoded\n            : u8aConcat(this.inner instanceof GenericAccountIndex\n                ? GenericAccountIndex.writeLength(encoded)\n                : ACCOUNT_ID_PREFIX, encoded);\n    }\n}\n","import { compactFromU8aLim, compactToU8a, isString, u8aConcatStrict, u8aToU8a } from '@polkadot/util';\nimport { Raw } from '../native/Raw.js';\n/** @internal */\nfunction decodeBitVecU8a(value) {\n    if (!value?.length) {\n        return [0, new Uint8Array()];\n    }\n    // handle all other Uint8Array inputs, these do have a length prefix which is the number of bits encoded\n    const [offset, length] = compactFromU8aLim(value);\n    const total = offset + Math.ceil(length / 8);\n    if (total > value.length) {\n        throw new Error(`BitVec: required length less than remainder, expected at least ${total}, found ${value.length}`);\n    }\n    return [length, value.subarray(offset, total)];\n}\n/** @internal */\nfunction decodeBitVec(value) {\n    if (Array.isArray(value) || isString(value)) {\n        const u8a = u8aToU8a(value);\n        return [u8a.length / 8, u8a];\n    }\n    return decodeBitVecU8a(value);\n}\n/**\n * @name BitVec\n * @description\n * A BitVec that represents an array of bits. The bits are however stored encoded. The difference between this\n * and a normal Bytes would be that the length prefix indicates the number of bits encoded, not the bytes\n */\nexport class BitVec extends Raw {\n    // In lieu of having the Msb/Lsb identifiers passed through, we default to assuming\n    // we are dealing with Lsb, which is the default (as of writing) BitVec format used\n    // in the Polkadot code (this only affects the toHuman displays)\n    constructor(registry, value, isMsb = false) {\n        const [decodedLength, u8a] = decodeBitVec(value);\n        super(registry, u8a);\n        this.__internal__decodedLength = decodedLength;\n        this.__internal__isMsb = isMsb;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return this.length + compactToU8a(this.__internal__decodedLength).length;\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {\n            outer: [compactToU8a(this.__internal__decodedLength), super.toU8a()]\n        };\n    }\n    /**\n     * @description Creates a boolean array of the bit values\n     */\n    toBoolArray() {\n        const map = [...this.toU8a(true)].map((v) => [\n            !!(v & 128),\n            !!(v & 64),\n            !!(v & 32),\n            !!(v & 16),\n            !!(v & 8),\n            !!(v & 4),\n            !!(v & 2),\n            !!(v & 1)\n        ]);\n        const count = map.length;\n        const result = new Array(8 * count);\n        for (let i = 0; i < count; i++) {\n            const off = i * 8;\n            const v = map[i];\n            for (let j = 0; j < 8; j++) {\n                result[off + j] = this.__internal__isMsb\n                    ? v[j]\n                    : v[7 - j];\n            }\n        }\n        return result;\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return `0b${[...this.toU8a(true)]\n            .map((d) => `00000000${d.toString(2)}`.slice(-8))\n            .map((s) => this.__internal__isMsb ? s : s.split('').reverse().join(''))\n            .join('_')}`;\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'BitVec';\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        const bitVec = super.toU8a(isBare);\n        return isBare\n            ? bitVec\n            : u8aConcatStrict([compactToU8a(this.__internal__decodedLength), bitVec]);\n    }\n}\n","import { floatToU8a, isHex, isU8a, u8aToFloat, u8aToHex, u8aToU8a } from '@polkadot/util';\n/**\n * @name Float\n * @description\n * A Codec wrapper for F32 & F64 values. You generally don't want to be using\n * f32/f64 in your runtime, operations on fixed points numbers are preferable. This class\n * was explicitly added since scale-codec has a flag that enables this and it is available\n * in some eth_* RPCs\n */\nexport class Float extends Number {\n    constructor(registry, value, { bitLength = 32 } = {}) {\n        super(isU8a(value) || isHex(value)\n            ? value.length === 0\n                ? 0\n                : u8aToFloat(u8aToU8a(value), { bitLength })\n            : (value || 0));\n        this.__internal__bitLength = bitLength;\n        this.encodedLength = bitLength / 8;\n        this.initialU8aLength = this.encodedLength;\n        this.registry = registry;\n    }\n    static with(bitLength) {\n        return class extends Float {\n            constructor(registry, value) {\n                super(registry, value, { bitLength });\n            }\n        };\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Returns true if the type wraps an empty/default all-0 value\n     */\n    get isEmpty() {\n        return this.valueOf() === 0;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return this.valueOf() === Number(other);\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return {\n            outer: [this.toU8a()]\n        };\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        return u8aToHex(this.toU8a());\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return this.toString();\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        // Not sure if this is actually a hex or a string value\n        // (would need to check against RPCs to see the result here)\n        return this.toHex();\n    }\n    /**\n     * @description Returns the number representation (Same as valueOf)\n     */\n    toNumber() {\n        return this.valueOf();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.toNumber();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return `f${this.__internal__bitLength}`;\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     */\n    toU8a(_isBare) {\n        return floatToU8a(this, {\n            bitLength: this.__internal__bitLength\n        });\n    }\n}\n","/**\n * @name u8aToFloat\n * @description Converts a Uint8Array value into the float (either 32 or 64-bit)\n * representation.\n */\nexport function u8aToFloat(value, { bitLength = 32, isLe = true } = {}) {\n    if (bitLength !== 32 && bitLength !== 64) {\n        throw new Error('Invalid bitLength provided, expected 32 or 64');\n    }\n    else if (value.length < (bitLength / 8)) {\n        throw new Error(`Invalid input buffer provided, expected at least ${bitLength / 8} bytes, found ${value.length}`);\n    }\n    const dv = new DataView(value.buffer, value.byteOffset);\n    return bitLength === 32\n        ? dv.getFloat32(0, isLe)\n        : dv.getFloat64(0, isLe);\n}\n","/**\n * @name floatToU8a\n * @description Converts a float into a U8a representation (While we don't use BE in SCALE\n * we still allow for either representation, although, as elsewhere, isLe is default)\n */\nexport function floatToU8a(value = 0.0, { bitLength = 32, isLe = true } = {}) {\n    if (bitLength !== 32 && bitLength !== 64) {\n        throw new Error('Invalid bitLength provided, expected 32 or 64');\n    }\n    const result = new Uint8Array(bitLength / 8);\n    const dv = new DataView(result.buffer, result.byteOffset);\n    if (bitLength === 32) {\n        dv.setFloat32(0, Number(value), isLe);\n    }\n    else {\n        dv.setFloat64(0, Number(value), isLe);\n    }\n    return result;\n}\n","import { Float } from '../native/Float.js';\n/**\n * @name f32\n * @description\n * A 32-bit float\n */\nexport class f32 extends Float.with(32) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__FloatType = 'f32';\n    }\n}\n","import { Float } from '../native/Float.js';\n/**\n * @name f64\n * @description\n * A 64-bit float\n */\nexport class f64 extends Float.with(64) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__FloatType = 'f64';\n    }\n}\n","import { Int } from '../base/Int.js';\n/**\n * @name i8\n * @description\n * An 8-bit signed integer\n */\nexport class i8 extends Int.with(8) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__IntType = 'i8';\n    }\n}\n","import { Int } from '../base/Int.js';\n/**\n * @name i16\n * @description\n * A 16-bit signed integer\n */\nexport class i16 extends Int.with(16) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__IntType = 'i16';\n    }\n}\n","import { Int } from '../base/Int.js';\n/**\n * @name i32\n * @description\n * A 32-bit signed integer\n */\nexport class i32 extends Int.with(32) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__IntType = 'i32';\n    }\n}\n","import { Int } from '../base/Int.js';\n/**\n * @name i64\n * @description\n * A 64-bit signed integer\n */\nexport class i64 extends Int.with(64) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__IntType = 'i64';\n    }\n}\n","import { Int } from '../base/Int.js';\n/**\n * @name i128\n * @description\n * A 128-bit signed integer\n */\nexport class i128 extends Int.with(128) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__IntType = 'i128';\n    }\n}\n","import { Int } from '../base/Int.js';\n/**\n * @name i256\n * @description\n * A 256-bit signed integer\n */\nexport class i256 extends Int.with(256) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__IntType = 'i256';\n    }\n}\n","import { i32 } from './I32.js';\n/**\n * @name ISize\n * @description\n * A System default signed number, typically used in RPC to report non-consensus\n * data. It is a wrapper for [[I32]] as a WASM default (as generated by Rust bindings).\n * It is not to be used, since it creates consensus mismatches.\n */\nexport class isize extends i32 {\n    constructor(registry, value) {\n        super(registry, value);\n        throw new Error('The `isize` type should not be used. Since it is platform-specific, it creates incompatibilities between native (generally i64) and WASM (always i32) code. Use one of the `i32` or `i64` types explicitly.');\n    }\n}\n","import { isHex, isU8a, u8aToU8a } from '@polkadot/util';\nimport { Option } from '../base/Option.js';\nimport { bool as Bool } from '../native/Bool.js';\nfunction decodeU8a(registry, value) {\n    // Encoded as -\n    //  - 0 = None\n    //  - 1 = True\n    //  - 2 = False\n    return value[0] === 0\n        ? null\n        : new Bool(registry, value[0] === 1);\n}\n/**\n * @name OptionBool\n * @description A specific implementation of Option<bool> than allows for single-byte encoding\n */\nexport class OptionBool extends Option {\n    constructor(registry, value) {\n        super(registry, Bool, isU8a(value) || isHex(value)\n            ? decodeU8a(registry, u8aToU8a(value))\n            : value);\n        this.initialU8aLength = 1;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return 1 | 0;\n    }\n    /**\n     * @description Checks if the value is an empty value (always false)\n     */\n    get isFalse() {\n        return this.isSome\n            ? !this.value.valueOf()\n            : false;\n    }\n    /**\n     * @description Checks if the value is an empty value (always false)\n     */\n    get isTrue() {\n        return this.isSome\n            ? this.value.valueOf()\n            : false;\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        return { outer: [this.toU8a()] };\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType(isBare) {\n        return isBare\n            ? 'bool'\n            : 'Option<bool>';\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        if (isBare) {\n            return super.toU8a(true);\n        }\n        return this.isSome\n            ? new Uint8Array([this.isTrue ? 1 : 2])\n            : new Uint8Array([0]);\n    }\n}\n","import { compactAddLength, compactFromU8aLim, compactToU8a, hexToU8a, isHex, isString, isU8a, stringToU8a, u8aToHex, u8aToString } from '@polkadot/util';\nimport { Raw } from './Raw.js';\nconst MAX_LENGTH = 128 * 1024;\n/** @internal */\nfunction decodeText(value) {\n    if (isU8a(value)) {\n        if (!value.length) {\n            return ['', 0];\n        }\n        // for Raw, the internal buffer does not have an internal length\n        // (the same applies in e.g. Bytes, where length is added at encoding-time)\n        if (value instanceof Raw) {\n            return [u8aToString(value), 0];\n        }\n        const [offset, length] = compactFromU8aLim(value);\n        const total = offset + length;\n        if (length > MAX_LENGTH) {\n            throw new Error(`Text: length ${length.toString()} exceeds ${MAX_LENGTH}`);\n        }\n        else if (total > value.length) {\n            throw new Error(`Text: required length less than remainder, expected at least ${total}, found ${value.length}`);\n        }\n        return [u8aToString(value.subarray(offset, total)), total];\n    }\n    else if (isHex(value)) {\n        return [u8aToString(hexToU8a(value)), 0];\n    }\n    return [value ? value.toString() : '', 0];\n}\n/**\n * @name Text\n * @description\n * This is a string wrapper, along with the length. It is used both for strings as well\n * as items such as documentation. It simply extends the standard JS `String` built-in\n * object, inheriting all methods exposed from `String`.\n * @noInheritDoc\n */\nexport class Text extends String {\n    constructor(registry, value) {\n        const [str, decodedLength] = decodeText(value);\n        super(str);\n        this.__internal__override = null;\n        this.registry = registry;\n        this.initialU8aLength = decodedLength;\n    }\n    /**\n     * @description The length of the value when encoded as a Uint8Array\n     */\n    get encodedLength() {\n        return this.toU8a().length;\n    }\n    /**\n     * @description returns a hash of the contents\n     */\n    get hash() {\n        return this.registry.hash(this.toU8a());\n    }\n    /**\n     * @description Checks if the value is an empty value\n     */\n    get isEmpty() {\n        return this.length === 0;\n    }\n    /**\n     * @description The length of the value\n     */\n    get length() {\n        // only included here since we ignore inherited docs\n        return super.length;\n    }\n    /**\n     * @description Compares the value of the input to see if there is a match\n     */\n    eq(other) {\n        return isString(other)\n            ? this.toString() === other.toString()\n            : false;\n    }\n    /**\n     * @description Returns a breakdown of the hex encoding for this Codec\n     */\n    inspect() {\n        const value = stringToU8a(super.toString());\n        return {\n            outer: value.length\n                ? [compactToU8a(value.length), value]\n                : [compactToU8a(value.length)]\n        };\n    }\n    /**\n     * @description Set an override value for this\n     */\n    setOverride(override) {\n        this.__internal__override = override;\n    }\n    /**\n     * @description Returns a hex string representation of the value\n     */\n    toHex() {\n        // like with Vec<u8>, when we are encoding to hex, we don't actually add\n        // the length prefix (it is already implied by the actual string length)\n        return u8aToHex(this.toU8a(true));\n    }\n    /**\n     * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information\n     */\n    toHuman() {\n        return this.toJSON();\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        return this.toString();\n    }\n    /**\n     * @description Converts the value in a best-fit primitive form\n     */\n    toPrimitive() {\n        return this.toJSON();\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Text';\n    }\n    /**\n     * @description Returns the string representation of the value\n     */\n    toString() {\n        return this.__internal__override || super.toString();\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     * @param isBare true when the value has none of the type-specific prefixes (internal)\n     */\n    toU8a(isBare) {\n        // NOTE Here we use the super toString (we are not taking overrides into account,\n        // rather encoding the original value the string was constructed with)\n        const encoded = stringToU8a(super.toString());\n        return isBare\n            ? encoded\n            : compactAddLength(encoded);\n    }\n}\n","import { Text } from '../native/Text.js';\nimport { sanitize } from '../utils/index.js';\n/**\n * @name Type\n * @description\n * This is a extended version of Text, specifically to handle types. Here we rely fully\n * on what Text provides us, however we also adjust the types received from the runtime,\n * i.e. we remove the `T::` prefixes found in some types for consistency across implementation.\n */\nexport class Type extends Text {\n    constructor(registry, value = '') {\n        super(registry, value);\n        this.setOverride(sanitize(this.toString()));\n    }\n    /**\n     * @description Returns the base runtime type name for this instance\n     */\n    toRawType() {\n        return 'Type';\n    }\n}\n","import { UInt } from '../base/UInt.js';\n/**\n * @name u8\n * @description\n * An 8-bit unsigned integer\n */\nexport class u8 extends UInt.with(8) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__UIntType = 'u8';\n    }\n}\n","import { UInt } from '../base/UInt.js';\n/**\n * @name u16\n * @description\n * A 16-bit unsigned integer\n */\nexport class u16 extends UInt.with(16) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__UIntType = 'u16';\n    }\n}\n","import { UInt } from '../base/UInt.js';\n/**\n * @name u128\n * @description\n * A 128-bit unsigned integer\n */\nexport class u128 extends UInt.with(128) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__UIntType = 'u128';\n    }\n}\n","import { UInt } from '../base/UInt.js';\n/**\n * @name u256\n * @description\n * A 256-bit unsigned integer\n */\nexport class u256 extends UInt.with(256) {\n    constructor() {\n        super(...arguments);\n        // NOTE without this, we cannot properly determine extensions\n        this.__UIntType = 'u256';\n    }\n}\n","import { u32 } from './U32.js';\n/**\n * @name USize\n * @description\n * A System default unsigned number, typically used in RPC to report non-consensus\n * data. It is a wrapper for [[U32]] as a WASM default (as generated by Rust bindings).\n * It is not to be used, since it created consensus mismatches.\n */\nexport class usize extends u32 {\n    constructor(registry, value) {\n        super(registry, value);\n        throw new Error('The `usize` type should not be used. Since it is platform-specific, it creates incompatibilities between native (generally u64) and WASM (always u32) code. Use one of the `u32` or `u64` types explicitly.');\n    }\n}\n","import { Enum } from '@polkadot/types-codec';\nimport { isString, isU8a, u8aToU8a } from '@polkadot/util';\n/** @internal */\nfunction decodeDataU8a(registry, value) {\n    const indicator = value[0];\n    if (!indicator) {\n        return [undefined, undefined];\n    }\n    else if (indicator >= 1 && indicator <= 33) {\n        const length = indicator - 1;\n        const data = value.subarray(1, length + 1);\n        // in this case, we are passing a Raw back (since we have no length)\n        return [registry.createTypeUnsafe('Raw', [data]), 1];\n    }\n    else if (indicator >= 34 && indicator <= 37) {\n        return [value.subarray(1, 32 + 1), indicator - 32]; // 34 becomes 2\n    }\n    throw new Error(`Unable to decode Data, invalid indicator byte ${indicator}`);\n}\n/** @internal */\nfunction decodeData(registry, value) {\n    if (isU8a(value) || isString(value)) {\n        return decodeDataU8a(registry, u8aToU8a(value));\n    }\n    else if (!value) {\n        return [undefined, undefined];\n    }\n    // assume we have an Enum or an  object input, handle this via the normal Enum decoding\n    return [value, undefined];\n}\n/**\n * @name Data\n * @description\n * A [[Data]] container with node, raw or hashed data\n */\nexport class Data extends Enum {\n    constructor(registry, value) {\n        super(registry, {\n            None: 'Null',\n            Raw: 'Bytes',\n            // eslint-disable-next-line sort-keys\n            BlakeTwo256: 'H256',\n            Sha256: 'H256',\n            // eslint-disable-next-line sort-keys\n            Keccak256: 'H256',\n            ShaThree256: 'H256' // 5\n        }, ...decodeData(registry, value));\n        if (this.isRaw && this.asRaw.length > 32) {\n            throw new Error('Data.Raw values are limited to a maximum length of 32 bytes');\n        }\n    }\n    get asBlakeTwo256() {\n        return this.value;\n    }\n    get asKeccak256() {\n        return this.value;\n    }\n    get asRaw() {\n        return this.value;\n    }\n    get asSha256() {\n        return this.value;\n    }\n    get asShaThree256() {\n        return this.value;\n    }\n    get isBlakeTwo256() {\n        return this.index === 2;\n    }\n    get isKeccak256() {\n        return this.index === 4;\n    }\n    get isNone() {\n        return this.index === 0;\n    }\n    get isRaw() {\n        return this.index === 1;\n    }\n    get isSha256() {\n        return this.index === 3;\n    }\n    get isShaThree256() {\n        return this.index === 5;\n    }\n    /**\n     * @description The encoded length\n     */\n    get encodedLength() {\n        return this.toU8a().length;\n    }\n    /**\n     * @description Encodes the value as a Uint8Array as per the SCALE specifications\n     */\n    toU8a() {\n        if (this.index === 0) {\n            return new Uint8Array(1);\n        }\n        else if (this.index === 1) {\n            // don't add the length, just the data\n            const data = this.value.toU8a(true);\n            const length = Math.min(data.length, 32);\n            const u8a = new Uint8Array(length + 1);\n            u8a.set([length + 1], 0);\n            u8a.set(data.subarray(0, length), 1);\n            return u8a;\n        }\n        // otherwise we simply have a hash\n        const u8a = new Uint8Array(33);\n        u8a.set([this.index + 32], 0);\n        u8a.set(this.value.toU8a(), 1);\n        return u8a;\n    }\n}\n","export function getSiName(lookup, type) {\n    const typeDef = lookup.getTypeDef(type);\n    return typeDef.lookupName || typeDef.type;\n}\n","import { getSiName } from '../metadata/util/index.js';\n/** @internal */\nexport function unwrapStorageSi(type) {\n    return type.isPlain\n        ? type.asPlain\n        : type.asMap.value;\n}\n/** @internal */\nexport function unwrapStorageType(registry, type, isOptional) {\n    const outputType = getSiName(registry.lookup, unwrapStorageSi(type));\n    return isOptional\n        ? `Option<${outputType}>`\n        : outputType;\n}\n","import { Bytes } from '@polkadot/types-codec';\nimport { isFunction, isString, isU8a } from '@polkadot/util';\nimport { getSiName } from '../metadata/util/index.js';\nimport { unwrapStorageType } from '../util/index.js';\nconst HASHER_MAP = {\n    // opaque\n    Blake2_128: [16, false],\n    Blake2_128Concat: [16, true],\n    Blake2_256: [32, false],\n    Identity: [0, true],\n    Twox128: [16, false],\n    Twox256: [32, false],\n    Twox64Concat: [8, true]\n};\n/** @internal */\nfunction decodeStorageKey(value) {\n    if (isU8a(value) || !value || isString(value)) {\n        // let Bytes handle these inputs\n        return { key: value };\n    }\n    else if (value instanceof StorageKey) {\n        return {\n            key: value,\n            method: value.method,\n            section: value.section\n        };\n    }\n    else if (isFunction(value)) {\n        return {\n            key: value(),\n            method: value.method,\n            section: value.section\n        };\n    }\n    else if (Array.isArray(value)) {\n        const [fn, args = []] = value;\n        if (!isFunction(fn)) {\n            throw new Error('Expected function input for key construction');\n        }\n        if (fn.meta && fn.meta.type.isMap) {\n            const map = fn.meta.type.asMap;\n            if (!Array.isArray(args) || args.length !== map.hashers.length) {\n                throw new Error(`Expected an array of ${map.hashers.length} values as params to a Map query`);\n            }\n        }\n        return {\n            key: fn(...args),\n            method: fn.method,\n            section: fn.section\n        };\n    }\n    throw new Error(`Unable to convert input ${value} to StorageKey`);\n}\n/** @internal */\nfunction decodeHashers(registry, value, hashers) {\n    // the storage entry is xxhashAsU8a(prefix, 128) + xxhashAsU8a(method, 128), 256 bits total\n    let offset = 32;\n    const count = hashers.length;\n    const result = new Array(count);\n    for (let i = 0; i < count; i++) {\n        const [hasher, type] = hashers[i];\n        const [hashLen, canDecode] = HASHER_MAP[hasher.type];\n        const decoded = canDecode\n            ? registry.createTypeUnsafe(getSiName(registry.lookup, type), [value.subarray(offset + hashLen)])\n            : registry.createTypeUnsafe('Raw', [value.subarray(offset, offset + hashLen)]);\n        offset += hashLen + (canDecode ? decoded.encodedLength : 0);\n        result[i] = decoded;\n    }\n    return result;\n}\n/** @internal */\nfunction decodeArgsFromMeta(registry, value, meta) {\n    if (!meta || !meta.type.isMap) {\n        return [];\n    }\n    const { hashers, key } = meta.type.asMap;\n    const keys = hashers.length === 1\n        ? [key]\n        : registry.lookup.getSiType(key).def.asTuple;\n    return decodeHashers(registry, value, hashers.map((h, i) => [h, keys[i]]));\n}\n/** @internal */\nfunction getMeta(value) {\n    if (value instanceof StorageKey) {\n        return value.meta;\n    }\n    else if (isFunction(value)) {\n        return value.meta;\n    }\n    else if (Array.isArray(value)) {\n        const [fn] = value;\n        return fn.meta;\n    }\n    return undefined;\n}\n/** @internal */\nfunction getType(registry, value) {\n    if (value instanceof StorageKey) {\n        return value.outputType;\n    }\n    else if (isFunction(value)) {\n        return unwrapStorageType(registry, value.meta.type);\n    }\n    else if (Array.isArray(value)) {\n        const [fn] = value;\n        if (fn.meta) {\n            return unwrapStorageType(registry, fn.meta.type);\n        }\n    }\n    // If we have no type set, default to Raw\n    return 'Raw';\n}\n/**\n * @name StorageKey\n * @description\n * A representation of a storage key (typically hashed) in the system. It can be\n * constructed by passing in a raw key or a StorageEntry with (optional) arguments.\n */\nexport class StorageKey extends Bytes {\n    constructor(registry, value, override = {}) {\n        const { key, method, section } = decodeStorageKey(value);\n        super(registry, key);\n        this.__internal__outputType = getType(registry, value);\n        // decode the args (as applicable based on the key and the hashers, after all init)\n        this.setMeta(getMeta(value), override.section || section, override.method || method);\n    }\n    /**\n     * @description Return the decoded arguments (applicable to map with decodable values)\n     */\n    get args() {\n        return this.__internal__args;\n    }\n    /**\n     * @description The metadata or `undefined` when not available\n     */\n    get meta() {\n        return this.__internal__meta;\n    }\n    /**\n     * @description The key method or `undefined` when not specified\n     */\n    get method() {\n        return this.__internal__method;\n    }\n    /**\n     * @description The output type\n     */\n    get outputType() {\n        return this.__internal__outputType;\n    }\n    /**\n     * @description The key section or `undefined` when not specified\n     */\n    get section() {\n        return this.__internal__section;\n    }\n    is(key) {\n        return key.section === this.section && key.method === this.method;\n    }\n    /**\n     * @description Sets the meta for this key\n     */\n    setMeta(meta, section, method) {\n        this.__internal__meta = meta;\n        this.__internal__method = method || this.__internal__method;\n        this.__internal__section = section || this.__internal__section;\n        if (meta) {\n            this.__internal__outputType = unwrapStorageType(this.registry, meta.type);\n        }\n        try {\n            this.__internal__args = decodeArgsFromMeta(this.registry, this.toU8a(true), meta);\n        }\n        catch {\n            // ignore...\n        }\n        return this;\n    }\n    /**\n     * @description Returns the Human representation for this type\n     */\n    toHuman() {\n        return this.__internal__args.length\n            ? this.__internal__args.map((a) => a.toHuman())\n            : super.toHuman();\n    }\n    /**\n     * @description Returns the raw type for this\n     */\n    toRawType() {\n        return 'StorageKey';\n    }\n}\n","const META_V1_TO_V2 = {\n    metadata: {\n        description: 'Returns the metadata of a runtime',\n        params: [],\n        type: 'OpaqueMetadata'\n    }\n};\nexport const runtime = {\n    Metadata: [\n        {\n            methods: {\n                metadata_at_version: {\n                    description: 'Returns the metadata at a given version.',\n                    params: [\n                        {\n                            name: 'version',\n                            type: 'u32'\n                        }\n                    ],\n                    type: 'Option<OpaqueMetadata>'\n                },\n                metadata_versions: {\n                    description: 'Returns the supported metadata versions.',\n                    params: [],\n                    type: 'Vec<u32>'\n                },\n                ...META_V1_TO_V2\n            },\n            version: 2\n        },\n        {\n            methods: {\n                ...META_V1_TO_V2\n            },\n            version: 1\n        }\n    ]\n};\n","/* eslint-disable sort-keys */\nexport const Si1Variant = {\n    name: 'Text',\n    fields: 'Vec<Si1Field>',\n    index: 'u8',\n    docs: 'Vec<Text>'\n};\nexport const v1 = {\n    Si1Field: {\n        name: 'Option<Text>',\n        type: 'Si1LookupTypeId',\n        typeName: 'Option<Text>',\n        docs: 'Vec<Text>'\n    },\n    Si1LookupTypeId: 'Compact<u32>',\n    Si1Path: 'Si0Path',\n    Si1Type: {\n        path: 'Si1Path',\n        params: 'Vec<Si1TypeParameter>',\n        def: 'Si1TypeDef',\n        docs: 'Vec<Text>'\n    },\n    Si1TypeDef: {\n        _enum: {\n            Composite: 'Si1TypeDefComposite',\n            Variant: 'Si1TypeDefVariant',\n            Sequence: 'Si1TypeDefSequence',\n            Array: 'Si1TypeDefArray',\n            Tuple: 'Si1TypeDefTuple',\n            Primitive: 'Si1TypeDefPrimitive',\n            Compact: 'Si1TypeDefCompact',\n            BitSequence: 'Si1TypeDefBitSequence',\n            // NOTE: This is specific to the implementation for pre-v14 metadata\n            // compatibility (always keep this as the last entry in the enum)\n            HistoricMetaCompat: 'Type'\n        }\n    },\n    Si1TypeDefArray: {\n        len: 'u32',\n        type: 'Si1LookupTypeId'\n    },\n    Si1TypeDefBitSequence: {\n        bitStoreType: 'Si1LookupTypeId',\n        bitOrderType: 'Si1LookupTypeId'\n    },\n    Si1TypeDefCompact: {\n        type: 'Si1LookupTypeId'\n    },\n    Si1TypeDefComposite: {\n        fields: 'Vec<Si1Field>'\n    },\n    Si1TypeDefPrimitive: 'Si0TypeDefPrimitive',\n    Si1TypeDefSequence: {\n        type: 'Si1LookupTypeId'\n    },\n    Si1TypeDefTuple: 'Vec<Si1LookupTypeId>',\n    Si1TypeParameter: {\n        name: 'Text',\n        type: 'Option<Si1LookupTypeId>'\n    },\n    Si1TypeDefVariant: {\n        variants: 'Vec<Si1Variant>'\n    },\n    Si1Variant\n};\n","import { AllHashers } from './hashers.js';\nimport { runtime } from './runtime.js';\nimport { v9 } from './v9.js';\nimport { v10 } from './v10.js';\nimport { v11 } from './v11.js';\nimport { v12 } from './v12.js';\nimport { v13 } from './v13.js';\nimport { v14 } from './v14.js';\nimport { v15 } from './v15.js';\nexport { AllHashers };\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        // all known\n        ...v9,\n        ...v10,\n        ...v11,\n        ...v12,\n        ...v13,\n        ...v14,\n        ...v15,\n        // latest mappings\n        // NOTE: For v15, we only added the runtime defintions,\n        // hence latest for most pointing to the previous V14\n        ErrorMetadataLatest: 'ErrorMetadataV14',\n        EventMetadataLatest: 'EventMetadataV14',\n        ExtrinsicMetadataLatest: 'ExtrinsicMetadataV15',\n        FunctionArgumentMetadataLatest: 'FunctionArgumentMetadataV14',\n        FunctionMetadataLatest: 'FunctionMetadataV14',\n        MetadataLatest: 'MetadataV15',\n        PalletCallMetadataLatest: 'PalletCallMetadataV14',\n        PalletConstantMetadataLatest: 'PalletConstantMetadataV14',\n        PalletErrorMetadataLatest: 'PalletErrorMetadataV14',\n        PalletEventMetadataLatest: 'PalletEventMetadataV14',\n        PalletMetadataLatest: 'PalletMetadataV15',\n        PalletStorageMetadataLatest: 'PalletStorageMetadataV14',\n        PortableType: 'PortableTypeV14',\n        RuntimeApiMetadataLatest: 'RuntimeApiMetadataV15',\n        SignedExtensionMetadataLatest: 'SignedExtensionMetadataV14',\n        StorageEntryMetadataLatest: 'StorageEntryMetadataV14',\n        StorageEntryModifierLatest: 'StorageEntryModifierV14',\n        StorageEntryTypeLatest: 'StorageEntryTypeV14',\n        StorageHasher: 'StorageHasherV14',\n        // additional types\n        OpaqueMetadata: 'Opaque<Bytes>',\n        // the enum containing all the mappings\n        MetadataAll: {\n            _enum: {\n                V0: 'DoNotConstruct<MetadataV0>',\n                V1: 'DoNotConstruct<MetadataV1>',\n                V2: 'DoNotConstruct<MetadataV2>',\n                V3: 'DoNotConstruct<MetadataV3>',\n                V4: 'DoNotConstruct<MetadataV4>',\n                V5: 'DoNotConstruct<MetadataV5>',\n                V6: 'DoNotConstruct<MetadataV6>',\n                V7: 'DoNotConstruct<MetadataV7>',\n                V8: 'DoNotConstruct<MetadataV8>',\n                // First version on Kusama in V9, dropping will be problematic\n                V9: 'MetadataV9',\n                V10: 'MetadataV10',\n                V11: 'MetadataV11',\n                V12: 'MetadataV12',\n                V13: 'MetadataV13',\n                V14: 'MetadataV14',\n                V15: 'MetadataV15'\n            }\n        }\n    }\n};\n","export const v9 = {\n    // v9\n    ErrorMetadataV9: {\n        name: 'Text',\n        docs: 'Vec<Text>'\n    },\n    EventMetadataV9: {\n        name: 'Text',\n        args: 'Vec<Type>',\n        docs: 'Vec<Text>'\n    },\n    FunctionArgumentMetadataV9: {\n        name: 'Text',\n        type: 'Type'\n    },\n    FunctionMetadataV9: {\n        name: 'Text',\n        args: 'Vec<FunctionArgumentMetadataV9>',\n        docs: 'Vec<Text>'\n    },\n    MetadataV9: {\n        modules: 'Vec<ModuleMetadataV9>'\n    },\n    ModuleConstantMetadataV9: {\n        name: 'Text',\n        type: 'Type',\n        value: 'Bytes',\n        docs: 'Vec<Text>'\n    },\n    ModuleMetadataV9: {\n        name: 'Text',\n        storage: 'Option<StorageMetadataV9>',\n        calls: 'Option<Vec<FunctionMetadataV9>>',\n        events: 'Option<Vec<EventMetadataV9>>',\n        constants: 'Vec<ModuleConstantMetadataV9>',\n        errors: 'Vec<ErrorMetadataV9>'\n    },\n    StorageEntryMetadataV9: {\n        name: 'Text',\n        modifier: 'StorageEntryModifierV9',\n        type: 'StorageEntryTypeV9',\n        fallback: 'Bytes',\n        docs: 'Vec<Text>'\n    },\n    StorageEntryModifierV9: {\n        _enum: ['Optional', 'Default', 'Required']\n    },\n    StorageEntryTypeV9: {\n        _enum: {\n            Plain: 'Type',\n            Map: {\n                hasher: 'StorageHasherV9',\n                key: 'Type',\n                value: 'Type',\n                linked: 'bool'\n            },\n            DoubleMap: {\n                hasher: 'StorageHasherV9',\n                key1: 'Type',\n                key2: 'Type',\n                value: 'Type',\n                key2Hasher: 'StorageHasherV9'\n            }\n        }\n    },\n    StorageHasherV9: {\n        _enum: {\n            Blake2_128: null,\n            Blake2_256: null,\n            Twox128: null,\n            Twox256: null,\n            Twox64Concat: null\n        }\n    },\n    StorageMetadataV9: {\n        prefix: 'Text',\n        items: 'Vec<StorageEntryMetadataV9>'\n    }\n};\n","export const v10 = {\n    // v10\n    ErrorMetadataV10: 'ErrorMetadataV9',\n    EventMetadataV10: 'EventMetadataV9',\n    FunctionArgumentMetadataV10: 'FunctionArgumentMetadataV9',\n    FunctionMetadataV10: 'FunctionMetadataV9',\n    MetadataV10: {\n        modules: 'Vec<ModuleMetadataV10>'\n    },\n    ModuleConstantMetadataV10: 'ModuleConstantMetadataV9',\n    ModuleMetadataV10: {\n        name: 'Text',\n        storage: 'Option<StorageMetadataV10>',\n        calls: 'Option<Vec<FunctionMetadataV10>>',\n        events: 'Option<Vec<EventMetadataV10>>',\n        constants: 'Vec<ModuleConstantMetadataV10>',\n        errors: 'Vec<ErrorMetadataV10>'\n    },\n    StorageEntryModifierV10: 'StorageEntryModifierV9',\n    StorageEntryMetadataV10: {\n        name: 'Text',\n        modifier: 'StorageEntryModifierV10',\n        type: 'StorageEntryTypeV10',\n        fallback: 'Bytes',\n        docs: 'Vec<Text>'\n    },\n    StorageEntryTypeV10: {\n        _enum: {\n            Plain: 'Type',\n            Map: {\n                hasher: 'StorageHasherV10',\n                key: 'Type',\n                value: 'Type',\n                linked: 'bool'\n            },\n            DoubleMap: {\n                hasher: 'StorageHasherV10',\n                key1: 'Type',\n                key2: 'Type',\n                value: 'Type',\n                key2Hasher: 'StorageHasherV10'\n            }\n        }\n    },\n    StorageMetadataV10: {\n        prefix: 'Text',\n        items: 'Vec<StorageEntryMetadataV10>'\n    },\n    StorageHasherV10: {\n        _enum: {\n            Blake2_128: null,\n            Blake2_256: null,\n            Blake2_128Concat: null,\n            Twox128: null,\n            Twox256: null,\n            Twox64Concat: null\n        }\n    }\n};\n","import { AllHashers } from './hashers.js';\nexport const v11 = {\n    // v11\n    ErrorMetadataV11: 'ErrorMetadataV10',\n    EventMetadataV11: 'EventMetadataV10',\n    ExtrinsicMetadataV11: {\n        version: 'u8',\n        signedExtensions: 'Vec<Text>'\n    },\n    FunctionArgumentMetadataV11: 'FunctionArgumentMetadataV10',\n    FunctionMetadataV11: 'FunctionMetadataV10',\n    MetadataV11: {\n        modules: 'Vec<ModuleMetadataV11>',\n        extrinsic: 'ExtrinsicMetadataV11'\n    },\n    ModuleConstantMetadataV11: 'ModuleConstantMetadataV10',\n    ModuleMetadataV11: {\n        name: 'Text',\n        storage: 'Option<StorageMetadataV11>',\n        calls: 'Option<Vec<FunctionMetadataV11>>',\n        events: 'Option<Vec<EventMetadataV11>>',\n        constants: 'Vec<ModuleConstantMetadataV11>',\n        errors: 'Vec<ErrorMetadataV11>'\n    },\n    StorageEntryModifierV11: 'StorageEntryModifierV10',\n    StorageEntryMetadataV11: {\n        name: 'Text',\n        modifier: 'StorageEntryModifierV11',\n        type: 'StorageEntryTypeV11',\n        fallback: 'Bytes',\n        docs: 'Vec<Text>'\n    },\n    StorageEntryTypeV11: {\n        _enum: {\n            Plain: 'Type',\n            Map: {\n                hasher: 'StorageHasherV11',\n                key: 'Type',\n                value: 'Type',\n                linked: 'bool'\n            },\n            DoubleMap: {\n                hasher: 'StorageHasherV11',\n                key1: 'Type',\n                key2: 'Type',\n                value: 'Type',\n                key2Hasher: 'StorageHasherV11'\n            }\n        }\n    },\n    StorageMetadataV11: {\n        prefix: 'Text',\n        items: 'Vec<StorageEntryMetadataV11>'\n    },\n    StorageHasherV11: {\n        _enum: AllHashers\n    }\n};\n","/* eslint-disable sort-keys */\nexport const AllHashers = {\n    Blake2_128: null,\n    Blake2_256: null,\n    Blake2_128Concat: null,\n    Twox128: null,\n    Twox256: null,\n    Twox64Concat: null,\n    // new in v11\n    Identity: null\n};\n","export const v12 = {\n    // v12\n    ErrorMetadataV12: 'ErrorMetadataV11',\n    EventMetadataV12: 'EventMetadataV11',\n    ExtrinsicMetadataV12: 'ExtrinsicMetadataV11',\n    FunctionArgumentMetadataV12: 'FunctionArgumentMetadataV11',\n    FunctionMetadataV12: 'FunctionMetadataV11',\n    MetadataV12: {\n        modules: 'Vec<ModuleMetadataV12>',\n        extrinsic: 'ExtrinsicMetadataV12'\n    },\n    ModuleConstantMetadataV12: 'ModuleConstantMetadataV11',\n    ModuleMetadataV12: {\n        name: 'Text',\n        storage: 'Option<StorageMetadataV12>',\n        calls: 'Option<Vec<FunctionMetadataV12>>',\n        events: 'Option<Vec<EventMetadataV12>>',\n        constants: 'Vec<ModuleConstantMetadataV12>',\n        errors: 'Vec<ErrorMetadataV12>',\n        index: 'u8'\n    },\n    StorageEntryModifierV12: 'StorageEntryModifierV11',\n    StorageEntryMetadataV12: 'StorageEntryMetadataV11',\n    StorageEntryTypeV12: 'StorageEntryTypeV11',\n    StorageMetadataV12: 'StorageMetadataV11',\n    StorageHasherV12: 'StorageHasherV11'\n};\n","export const v13 = {\n    // v13\n    ErrorMetadataV13: 'ErrorMetadataV12',\n    EventMetadataV13: 'EventMetadataV12',\n    ExtrinsicMetadataV13: 'ExtrinsicMetadataV12',\n    FunctionArgumentMetadataV13: 'FunctionArgumentMetadataV12',\n    FunctionMetadataV13: 'FunctionMetadataV12',\n    MetadataV13: {\n        modules: 'Vec<ModuleMetadataV13>',\n        extrinsic: 'ExtrinsicMetadataV13'\n    },\n    ModuleConstantMetadataV13: 'ModuleConstantMetadataV12',\n    ModuleMetadataV13: {\n        name: 'Text',\n        storage: 'Option<StorageMetadataV13>',\n        calls: 'Option<Vec<FunctionMetadataV13>>',\n        events: 'Option<Vec<EventMetadataV13>>',\n        constants: 'Vec<ModuleConstantMetadataV13>',\n        errors: 'Vec<ErrorMetadataV13>',\n        index: 'u8'\n    },\n    StorageEntryModifierV13: 'StorageEntryModifierV12',\n    StorageEntryMetadataV13: {\n        name: 'Text',\n        modifier: 'StorageEntryModifierV13',\n        type: 'StorageEntryTypeV13',\n        fallback: 'Bytes',\n        docs: 'Vec<Text>'\n    },\n    StorageEntryTypeV13: {\n        _enum: {\n            Plain: 'Type',\n            Map: {\n                hasher: 'StorageHasherV13',\n                key: 'Type',\n                value: 'Type',\n                linked: 'bool'\n            },\n            DoubleMap: {\n                hasher: 'StorageHasherV13',\n                key1: 'Type',\n                key2: 'Type',\n                value: 'Type',\n                key2Hasher: 'StorageHasherV13'\n            },\n            NMap: {\n                keyVec: 'Vec<Type>',\n                hashers: 'Vec<StorageHasherV13>',\n                value: 'Type'\n            }\n        }\n    },\n    StorageMetadataV13: {\n        prefix: 'Text',\n        items: 'Vec<StorageEntryMetadataV13>'\n    },\n    StorageHasherV13: 'StorageHasherV12'\n};\n","import { Si1Variant } from '../scaleInfo/v1.js';\nexport const v14 = {\n    // registry\n    PortableTypeV14: {\n        id: 'Si1LookupTypeId',\n        type: 'Si1Type'\n    },\n    // compatibility with earlier layouts, i.e. don't break previous users\n    ErrorMetadataV14: {\n        ...Si1Variant,\n        args: 'Vec<Type>'\n    },\n    EventMetadataV14: {\n        ...Si1Variant,\n        args: 'Vec<Type>'\n    },\n    FunctionArgumentMetadataV14: {\n        name: 'Text',\n        type: 'Type',\n        typeName: 'Option<Type>'\n    },\n    FunctionMetadataV14: {\n        ...Si1Variant,\n        args: 'Vec<FunctionArgumentMetadataV14>'\n    },\n    // V14\n    ExtrinsicMetadataV14: {\n        type: 'SiLookupTypeId',\n        version: 'u8',\n        signedExtensions: 'Vec<SignedExtensionMetadataV14>'\n    },\n    MetadataV14: {\n        lookup: 'PortableRegistry',\n        pallets: 'Vec<PalletMetadataV14>',\n        extrinsic: 'ExtrinsicMetadataV14',\n        type: 'SiLookupTypeId'\n    },\n    PalletCallMetadataV14: {\n        type: 'SiLookupTypeId'\n    },\n    PalletConstantMetadataV14: {\n        name: 'Text',\n        type: 'SiLookupTypeId',\n        value: 'Bytes',\n        docs: 'Vec<Text>'\n    },\n    PalletErrorMetadataV14: {\n        type: 'SiLookupTypeId'\n    },\n    PalletEventMetadataV14: {\n        type: 'SiLookupTypeId'\n    },\n    PalletMetadataV14: {\n        name: 'Text',\n        storage: 'Option<PalletStorageMetadataV14>',\n        calls: 'Option<PalletCallMetadataV14>',\n        events: 'Option<PalletEventMetadataV14>',\n        constants: 'Vec<PalletConstantMetadataV14>',\n        errors: 'Option<PalletErrorMetadataV14>',\n        index: 'u8'\n    },\n    PalletStorageMetadataV14: {\n        prefix: 'Text',\n        // NOTE: Renamed from entries\n        items: 'Vec<StorageEntryMetadataV14>'\n    },\n    SignedExtensionMetadataV14: {\n        identifier: 'Text',\n        type: 'SiLookupTypeId',\n        additionalSigned: 'SiLookupTypeId'\n    },\n    StorageEntryMetadataV14: {\n        name: 'Text',\n        modifier: 'StorageEntryModifierV14',\n        type: 'StorageEntryTypeV14',\n        fallback: 'Bytes',\n        docs: 'Vec<Text>'\n    },\n    StorageEntryModifierV14: 'StorageEntryModifierV13',\n    StorageEntryTypeV14: {\n        _enum: {\n            Plain: 'SiLookupTypeId',\n            Map: {\n                hashers: 'Vec<StorageHasherV14>',\n                key: 'SiLookupTypeId',\n                value: 'SiLookupTypeId'\n            }\n        }\n    },\n    StorageHasherV14: 'StorageHasherV13'\n};\n","export const v15 = {\n    // new/adjusted in v15\n    CustomMetadata15: {\n        map: 'BTreeMap<Text, CustomValueMetadata15>'\n    },\n    CustomValueMetadata15: {\n        type: 'SiLookupTypeId',\n        value: 'Bytes'\n    },\n    ExtrinsicMetadataV15: {\n        version: 'u8',\n        addressType: 'SiLookupTypeId',\n        callType: 'SiLookupTypeId',\n        signatureType: 'SiLookupTypeId',\n        extraType: 'SiLookupTypeId',\n        signedExtensions: 'Vec<SignedExtensionMetadataV14>'\n    },\n    OuterEnums15: {\n        callType: 'SiLookupTypeId',\n        eventType: 'SiLookupTypeId',\n        errorType: 'SiLookupTypeId'\n    },\n    PalletMetadataV15: {\n        name: 'Text',\n        storage: 'Option<PalletStorageMetadataV14>',\n        calls: 'Option<PalletCallMetadataV14>',\n        events: 'Option<PalletEventMetadataV14>',\n        constants: 'Vec<PalletConstantMetadataV14>',\n        errors: 'Option<PalletErrorMetadataV14>',\n        index: 'u8',\n        docs: 'Vec<Text>'\n    },\n    RuntimeApiMetadataV15: {\n        name: 'Text',\n        methods: 'Vec<RuntimeApiMethodMetadataV15>',\n        docs: 'Vec<Text>'\n    },\n    RuntimeApiMethodMetadataV15: {\n        name: 'Text',\n        inputs: 'Vec<RuntimeApiMethodParamMetadataV15>',\n        output: 'SiLookupTypeId',\n        docs: 'Vec<Text>'\n    },\n    RuntimeApiMethodParamMetadataV15: {\n        name: 'Text',\n        type: 'SiLookupTypeId'\n    },\n    // actual v15 definition\n    MetadataV15: {\n        lookup: 'PortableRegistry',\n        pallets: 'Vec<PalletMetadataV15>',\n        extrinsic: 'ExtrinsicMetadataV15',\n        type: 'SiLookupTypeId',\n        apis: 'Vec<RuntimeApiMetadataV15>',\n        outerEnums: 'OuterEnums15',\n        custom: 'CustomMetadata15'\n    }\n};\n","const CORE_V1_TO_V4 = {\n    execute_block: {\n        description: 'Execute the given block.',\n        params: [\n            {\n                name: 'block',\n                type: 'Block'\n            }\n        ],\n        type: 'Null'\n    }\n};\nconst CORE_V1_TO_V2 = {\n    version: {\n        description: 'Returns the version of the runtime.',\n        params: [],\n        type: 'RuntimeVersionPre3'\n    }\n};\nconst CORE_V2_TO_V4 = {\n    initialize_block: {\n        description: 'Initialize a block with the given header.',\n        params: [\n            {\n                name: 'header',\n                type: 'Header'\n            }\n        ],\n        type: 'Null'\n    }\n};\nexport const runtime = {\n    Core: [\n        {\n            methods: {\n                version: {\n                    description: 'Returns the version of the runtime.',\n                    params: [],\n                    type: 'RuntimeVersion'\n                },\n                ...CORE_V1_TO_V4,\n                ...CORE_V2_TO_V4\n            },\n            version: 4\n        },\n        {\n            methods: {\n                version: {\n                    description: 'Returns the version of the runtime.',\n                    params: [],\n                    type: 'RuntimeVersionPre4'\n                },\n                ...CORE_V1_TO_V4,\n                ...CORE_V2_TO_V4\n            },\n            version: 3\n        },\n        {\n            methods: {\n                ...CORE_V1_TO_V2,\n                ...CORE_V1_TO_V4,\n                ...CORE_V2_TO_V4\n            },\n            version: 2\n        },\n        {\n            methods: {\n                initialise_block: {\n                    description: 'Initialize a block with the given header.',\n                    params: [\n                        {\n                            name: 'header',\n                            type: 'Header'\n                        }\n                    ],\n                    type: 'Null'\n                },\n                ...CORE_V1_TO_V2,\n                ...CORE_V1_TO_V4\n            },\n            version: 1\n        }\n    ]\n};\n","import { runtime } from './runtime.js';\nconst numberTypes = {\n    Fixed64: 'Int<64, Fixed64>',\n    FixedI64: 'Int<64, FixedI64>',\n    FixedU64: 'UInt<64, FixedU64>',\n    Fixed128: 'Int<128, Fixed128>',\n    FixedI128: 'Int<128, FixedI128>',\n    FixedU128: 'UInt<128, FixedU128>',\n    I32F32: 'Int<64, I32F32>',\n    U32F32: 'UInt<64, U32F32>',\n    PerU16: 'UInt<16, PerU16>',\n    Perbill: 'UInt<32, Perbill>',\n    Percent: 'UInt<8, Percent>',\n    Permill: 'UInt<32, Permill>',\n    Perquintill: 'UInt<64, Perquintill>'\n};\nexport const knownOrigins = {\n    //\n    // (1) Defaults from Substrate\n    //\n    Council: 'CollectiveOrigin',\n    System: 'SystemOrigin',\n    TechnicalCommittee: 'CollectiveOrigin',\n    //\n    // (2) Defaults from Polkadot\n    //\n    Xcm: 'XcmOrigin',\n    XcmPallet: 'XcmOrigin',\n    //\n    // (3) Defaults from Acala\n    //\n    Authority: 'AuthorityOrigin',\n    GeneralCouncil: 'CollectiveOrigin'\n};\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        ...numberTypes,\n        AccountId: 'AccountId32',\n        AccountId20: 'GenericEthereumAccountId',\n        AccountId32: 'GenericAccountId32',\n        AccountId33: 'GenericAccountId33',\n        AccountIdOf: 'AccountId',\n        AccountIndex: 'GenericAccountIndex',\n        Address: 'MultiAddress',\n        AssetId: 'u32',\n        Balance: 'UInt<128, Balance>',\n        BalanceOf: 'Balance',\n        Block: 'GenericBlock',\n        BlockNumber: 'u32',\n        BlockNumberFor: 'BlockNumber',\n        BlockNumberOf: 'BlockNumber',\n        Call: 'GenericCall',\n        CallHash: 'Hash',\n        CallHashOf: 'CallHash',\n        ChangesTrieConfiguration: {\n            digestInterval: 'u32',\n            digestLevels: 'u32'\n        },\n        ChangesTrieSignal: {\n            _enum: {\n                NewConfiguration: 'Option<ChangesTrieConfiguration>'\n            }\n        },\n        ConsensusEngineId: 'GenericConsensusEngineId',\n        CodecHash: 'Hash',\n        CrateVersion: {\n            major: 'u16',\n            minor: 'u8',\n            patch: 'u8'\n        },\n        Digest: {\n            logs: 'Vec<DigestItem>'\n        },\n        DigestItem: {\n            _enum: {\n                Other: 'Bytes',\n                AuthoritiesChange: 'Vec<AuthorityId>',\n                ChangesTrieRoot: 'Hash',\n                SealV0: 'SealV0',\n                Consensus: 'Consensus',\n                Seal: 'Seal',\n                PreRuntime: 'PreRuntime',\n                ChangesTrieSignal: 'ChangesTrieSignal',\n                RuntimeEnvironmentUpdated: 'Null' // 8\n            }\n        },\n        ExtrinsicsWeight: {\n            normal: 'Weight',\n            operational: 'Weight'\n        },\n        H32: '[u8; 4; H32]',\n        H64: '[u8; 8; H64]',\n        H128: '[u8; 16; H128]',\n        H160: '[u8; 20; H160]',\n        H256: '[u8; 32; H256]',\n        H512: '[u8; 64; H512]',\n        H1024: '[u8; 128; H1024]',\n        H2048: '[u8; 256; H2048]',\n        Hash: 'H256',\n        Header: {\n            parentHash: 'Hash',\n            number: 'Compact<BlockNumber>',\n            stateRoot: 'Hash',\n            extrinsicsRoot: 'Hash',\n            digest: 'Digest'\n        },\n        HeaderPartial: {\n            parentHash: 'Hash',\n            // since we only parse JSON with this, having non-compact works\n            number: 'BlockNumber'\n        },\n        IndicesLookupSource: 'GenericLookupSource',\n        Index: 'u32',\n        Justification: '(ConsensusEngineId, EncodedJustification)',\n        EncodedJustification: 'Bytes',\n        Justifications: 'Vec<Justification>',\n        KeyValue: '(StorageKey, StorageData)',\n        KeyTypeId: 'u32',\n        LockIdentifier: '[u8; 8]',\n        LookupSource: 'MultiAddress',\n        LookupTarget: 'AccountId',\n        ModuleId: 'LockIdentifier',\n        MultiAddress: 'GenericMultiAddress',\n        MultiSigner: {\n            _enum: {\n                Ed25519: '[u8; 32]',\n                Sr25519: '[u8; 32]',\n                Ecdsa: '[u8; 33]'\n            }\n        },\n        Moment: 'UInt<64, Moment>',\n        OpaqueCall: 'Bytes',\n        Origin: 'DoNotConstruct<Origin>',\n        OriginCaller: {\n            _enum: {\n                // this should be dynamically built from the actual modules, based on index\n                System: 'SystemOrigin'\n            }\n        },\n        PalletId: 'LockIdentifier',\n        PalletsOrigin: 'OriginCaller',\n        PalletVersion: {\n            major: 'u16',\n            minor: 'u8',\n            patch: 'u8'\n        },\n        Pays: {\n            _enum: ['Yes', 'No']\n        },\n        Phantom: 'Null',\n        PhantomData: 'Null',\n        Releases: {\n            _enum: ['V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V9', 'V10']\n        },\n        RuntimeCall: 'Call',\n        RuntimeEvent: 'Event',\n        RuntimeDbWeight: {\n            read: 'Weight',\n            write: 'Weight'\n        },\n        SignedBlock: 'SignedBlockWithJustifications',\n        SignedBlockWithJustification: {\n            block: 'Block',\n            justification: 'Option<EncodedJustification>'\n        },\n        SignedBlockWithJustifications: {\n            block: 'Block',\n            justifications: 'Option<Justifications>'\n        },\n        Slot: 'u64',\n        SlotDuration: 'u64',\n        StorageData: 'Bytes',\n        StorageInfo: {\n            palletName: 'Bytes',\n            storage_name: 'Bytes',\n            prefix: 'Bytes',\n            maxValues: 'Option<u32>',\n            maxSize: 'Option<u32>'\n        },\n        StorageProof: {\n            trieNodes: 'Vec<Bytes>'\n        },\n        TransactionPriority: 'u64',\n        TransactionLongevity: 'u64',\n        TransactionTag: 'Bytes',\n        TransactionInfo: {\n            _alias: {\n                dataSize: 'size'\n            },\n            chunkRoot: 'H256',\n            contentHash: 'H256',\n            dataSize: 'u32',\n            blockChunks: 'u32'\n        },\n        TransactionStorageProof: {\n            chunk: 'Vec<u8>',\n            proof: 'Vec<Vec<u8>>'\n        },\n        ValidatorId: 'AccountId',\n        ValidatorIdOf: 'ValidatorId',\n        WeightV0: 'u32',\n        WeightV1: 'u64',\n        WeightV2: {\n            refTime: 'Compact<u64>',\n            proofSize: 'Compact<u64>'\n        },\n        Weight: 'WeightV2',\n        WeightMultiplier: 'Fixed64',\n        // digest\n        PreRuntime: '(ConsensusEngineId, Bytes)',\n        SealV0: '(u64, Signature)',\n        Seal: '(ConsensusEngineId, Bytes)',\n        Consensus: '(ConsensusEngineId, Bytes)'\n    }\n};\n","import { v0 } from './v0.js';\nimport { v1 } from './v1.js';\n/* eslint-disable sort-keys */\nexport default {\n    rpc: {},\n    types: {\n        ...v0,\n        ...v1,\n        // latest mappings\n        SiField: 'Si1Field',\n        SiLookupTypeId: 'Si1LookupTypeId',\n        SiPath: 'Si1Path',\n        SiType: 'Si1Type',\n        SiTypeDef: 'Si1TypeDef',\n        SiTypeDefArray: 'Si1TypeDefArray',\n        SiTypeDefBitSequence: 'Si1TypeDefBitSequence',\n        SiTypeDefCompact: 'Si1TypeDefCompact',\n        SiTypeDefComposite: 'Si1TypeDefComposite',\n        SiTypeDefPrimitive: 'Si1TypeDefPrimitive',\n        SiTypeDefSequence: 'Si1TypeDefSequence',\n        SiTypeDefTuple: 'Si1TypeDefTuple',\n        SiTypeParameter: 'Si1TypeParameter',\n        SiTypeDefVariant: 'Si1TypeDefVariant',\n        SiVariant: 'Si1Variant'\n    }\n};\n","/* eslint-disable sort-keys */\nexport const v0 = {\n    Si0Field: {\n        name: 'Option<Text>',\n        type: 'Si0LookupTypeId',\n        typeName: 'Option<Text>',\n        docs: 'Vec<Text>'\n    },\n    Si0LookupTypeId: 'u32',\n    Si0Path: 'Vec<Text>',\n    Si0Type: {\n        path: 'Si0Path',\n        params: 'Vec<Si0LookupTypeId>',\n        def: 'Si0TypeDef'\n    },\n    Si0TypeDef: {\n        _enum: {\n            Composite: 'Si0TypeDefComposite',\n            Variant: 'Si0TypeDefVariant',\n            Sequence: 'Si0TypeDefSequence',\n            Array: 'Si0TypeDefArray',\n            Tuple: 'Si0TypeDefTuple',\n            Primitive: 'Si0TypeDefPrimitive',\n            Compact: 'Si0TypeDefCompact',\n            Phantom: 'Si0TypeDefPhantom',\n            BitSequence: 'Si0TypeDefBitSequence'\n        }\n    },\n    Si0TypeDefArray: {\n        len: 'u32',\n        type: 'Si0LookupTypeId'\n    },\n    Si0TypeDefBitSequence: {\n        bitStoreType: 'Si0LookupTypeId',\n        bitOrderType: 'Si0LookupTypeId'\n    },\n    Si0TypeDefCompact: {\n        type: 'Si0LookupTypeId'\n    },\n    Si0TypeDefComposite: {\n        fields: 'Vec<Si0Field>'\n    },\n    Si0TypeDefPhantom: 'Null',\n    Si0TypeDefVariant: {\n        variants: 'Vec<Si0Variant>'\n    },\n    Si0TypeDefPrimitive: {\n        _enum: ['Bool', 'Char', 'Str', 'U8', 'U16', 'U32', 'U64', 'U128', 'U256', 'I8', 'I16', 'I32', 'I64', 'I128', 'I256']\n    },\n    Si0TypeDefSequence: {\n        type: 'Si0LookupTypeId'\n    },\n    Si0TypeDefTuple: 'Vec<Si0LookupTypeId>',\n    Si0TypeParameter: {\n        name: 'Text',\n        type: 'Option<Si0LookupTypeId>'\n    },\n    Si0Variant: {\n        name: 'Text',\n        fields: 'Vec<Si0Field>',\n        index: 'Option<u8>',\n        discriminant: 'Option<u64>',\n        docs: 'Vec<Text>'\n    }\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {}\n};\n","export const runtime = {\n    AssetConversionApi: [\n        {\n            methods: {\n                get_reserves: {\n                    description: 'Get pool reserves',\n                    params: [\n                        {\n                            name: 'asset1',\n                            type: 'XcmV3MultiLocation'\n                        },\n                        {\n                            name: 'asset2',\n                            type: 'XcmV3MultiLocation'\n                        }\n                    ],\n                    type: 'Option<(Balance,Balance)>'\n                },\n                quote_price_exact_tokens_for_tokens: {\n                    description: 'Quote price: exact tokens for tokens',\n                    params: [\n                        {\n                            name: 'asset1',\n                            type: 'XcmV3MultiLocation'\n                        },\n                        {\n                            name: 'asset2',\n                            type: 'XcmV3MultiLocation'\n                        },\n                        {\n                            name: 'amount',\n                            type: 'u128'\n                        },\n                        {\n                            name: 'include_fee',\n                            type: 'bool'\n                        }\n                    ],\n                    type: 'Option<(Balance)>'\n                },\n                quote_price_tokens_for_exact_tokens: {\n                    description: 'Quote price: tokens for exact tokens',\n                    params: [\n                        {\n                            name: 'asset1',\n                            type: 'XcmV3MultiLocation'\n                        },\n                        {\n                            name: 'asset2',\n                            type: 'XcmV3MultiLocation'\n                        },\n                        {\n                            name: 'amount',\n                            type: 'u128'\n                        },\n                        {\n                            name: 'include_fee',\n                            type: 'bool'\n                        }\n                    ],\n                    type: 'Option<(Balance)>'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        AssetApprovalKey: {\n            owner: 'AccountId',\n            delegate: 'AccountId'\n        },\n        AssetApproval: {\n            amount: 'TAssetBalance',\n            deposit: 'TAssetDepositBalance'\n        },\n        AssetBalance: {\n            balance: 'TAssetBalance',\n            isFrozen: 'bool',\n            isSufficient: 'bool'\n        },\n        AssetDestroyWitness: {\n            accounts: 'Compact<u32>',\n            sufficients: 'Compact<u32>',\n            approvals: 'Compact<u32>'\n        },\n        AssetDetails: {\n            owner: 'AccountId',\n            issuer: 'AccountId',\n            admin: 'AccountId',\n            freezer: 'AccountId',\n            supply: 'TAssetBalance',\n            deposit: 'TAssetDepositBalance',\n            minBalance: 'TAssetBalance',\n            isSufficient: 'bool',\n            accounts: 'u32',\n            sufficients: 'u32',\n            approvals: 'u32',\n            isFrozen: 'bool'\n        },\n        AssetMetadata: {\n            deposit: 'TAssetDepositBalance',\n            name: 'Vec<u8>',\n            symbol: 'Vec<u8>',\n            decimals: 'u8',\n            isFrozen: 'bool'\n        },\n        TAssetBalance: 'u64',\n        TAssetDepositBalance: 'BalanceOf'\n    }\n};\n","export const runtime = {\n    AssetsApi: [\n        {\n            methods: {\n                account_balances: {\n                    description: 'Return the current set of authorities.',\n                    params: [\n                        {\n                            name: 'account',\n                            type: 'AccountId'\n                        }\n                    ],\n                    type: 'Vec<(u32, TAssetBalance)>'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        RawAuraPreDigest: {\n            slotNumber: 'u64'\n        }\n    }\n};\n","export const runtime = {\n    AuraApi: [\n        {\n            methods: {\n                authorities: {\n                    description: 'Return the current set of authorities.',\n                    params: [],\n                    type: 'Vec<AuthorityId>'\n                },\n                slot_duration: {\n                    description: 'Returns the slot duration for Aura.',\n                    params: [],\n                    type: 'SlotDuration'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","export default {\n    rpc: {},\n    types: {\n        UncleEntryItem: {\n            _enum: {\n                InclusionHeight: 'BlockNumber',\n                Uncle: '(Hash, Option<AccountId>)'\n            }\n        }\n    }\n};\n","const V1_V2_SHARED = {\n    current_epoch: {\n        description: 'Returns information regarding the current epoch.',\n        params: [],\n        type: 'Epoch'\n    },\n    current_epoch_start: {\n        description: 'Returns the slot that started the current epoch.',\n        params: [],\n        type: 'Slot'\n    },\n    generate_key_ownership_proof: {\n        description: 'Generates a proof of key ownership for the given authority in the current epoch.',\n        params: [\n            {\n                name: 'slot',\n                type: 'Slot'\n            },\n            {\n                name: 'authorityId',\n                type: 'AuthorityId'\n            }\n        ],\n        type: 'Option<OpaqueKeyOwnershipProof>'\n    },\n    next_epoch: {\n        description: 'Returns information regarding the next epoch (which was already previously announced).',\n        params: [],\n        type: 'Epoch'\n    },\n    submit_report_equivocation_unsigned_extrinsic: {\n        description: 'Submits an unsigned extrinsic to report an equivocation.',\n        params: [\n            {\n                name: 'equivocationProof',\n                type: 'BabeEquivocationProof'\n            },\n            {\n                name: 'keyOwnerProof',\n                type: 'OpaqueKeyOwnershipProof'\n            }\n        ],\n        type: 'Option<Null>'\n    }\n};\nexport const runtime = {\n    BabeApi: [\n        {\n            methods: {\n                configuration: {\n                    description: 'Return the genesis configuration for BABE. The configuration is only read on genesis.',\n                    params: [],\n                    type: 'BabeGenesisConfiguration'\n                },\n                ...V1_V2_SHARED\n            },\n            version: 2\n        },\n        {\n            methods: {\n                configuration: {\n                    description: 'Return the configuration for BABE. Version 1.',\n                    params: [],\n                    type: 'BabeGenesisConfigurationV1'\n                },\n                ...V1_V2_SHARED\n            },\n            version: 1\n        }\n    ]\n};\n","import { rpc } from './rpc.js';\nimport { runtime } from './runtime.js';\nexport default {\n    rpc,\n    runtime,\n    types: {\n        AllowedSlots: {\n            _enum: ['PrimarySlots', 'PrimaryAndSecondaryPlainSlots', 'PrimaryAndSecondaryVRFSlots']\n        },\n        BabeAuthorityWeight: 'u64',\n        BabeEpochConfiguration: {\n            c: '(u64, u64)',\n            allowedSlots: 'AllowedSlots'\n        },\n        BabeBlockWeight: 'u32',\n        BabeEquivocationProof: {\n            offender: 'AuthorityId',\n            slotNumber: 'SlotNumber',\n            firstHeader: 'Header',\n            secondHeader: 'Header'\n        },\n        BabeGenesisConfiguration: {\n            slotDuration: 'u64',\n            epochLength: 'u64',\n            c: '(u64, u64)',\n            genesisAuthorities: 'Vec<(AuthorityId, BabeAuthorityWeight)>',\n            randomness: 'Randomness',\n            allowedSlots: 'AllowedSlots'\n        },\n        BabeGenesisConfigurationV1: {\n            slotDuration: 'u64',\n            epochLength: 'u64',\n            c: '(u64, u64)',\n            genesisAuthorities: 'Vec<(AuthorityId, BabeAuthorityWeight)>',\n            randomness: 'Randomness',\n            secondarySlots: 'bool'\n        },\n        BabeWeight: 'u64',\n        MaybeRandomness: 'Option<Randomness>',\n        MaybeVrf: 'Option<VrfData>',\n        Epoch: {\n            epochIndex: 'u64',\n            startSlot: 'Slot',\n            duration: 'u64',\n            authorities: 'Vec<(AuthorityId, BabeAuthorityWeight)>',\n            randomness: 'Hash',\n            config: 'BabeEpochConfiguration'\n        },\n        EpochAuthorship: {\n            primary: 'Vec<u64>',\n            secondary: 'Vec<u64>',\n            secondary_vrf: 'Vec<u64>'\n        },\n        NextConfigDescriptor: {\n            _enum: {\n                V0: 'Null',\n                V1: 'NextConfigDescriptorV1'\n            }\n        },\n        NextConfigDescriptorV1: {\n            c: '(u64, u64)',\n            allowedSlots: 'AllowedSlots'\n        },\n        OpaqueKeyOwnershipProof: 'Bytes',\n        Randomness: 'Hash',\n        RawBabePreDigest: {\n            _enum: {\n                Phantom: 'Null',\n                Primary: 'RawBabePreDigestPrimary',\n                SecondaryPlain: 'RawBabePreDigestSecondaryPlain',\n                SecondaryVRF: 'RawBabePreDigestSecondaryVRF'\n            }\n        },\n        RawBabePreDigestPrimary: {\n            authorityIndex: 'u32',\n            slotNumber: 'SlotNumber',\n            vrfOutput: 'VrfOutput',\n            vrfProof: 'VrfProof'\n        },\n        RawBabePreDigestSecondaryPlain: {\n            authorityIndex: 'u32',\n            slotNumber: 'SlotNumber'\n        },\n        RawBabePreDigestSecondaryVRF: {\n            authorityIndex: 'u32',\n            slotNumber: 'SlotNumber',\n            vrfOutput: 'VrfOutput',\n            vrfProof: 'VrfProof'\n        },\n        RawBabePreDigestTo159: {\n            _enum: {\n                Primary: 'RawBabePreDigestPrimaryTo159',\n                Secondary: 'RawBabePreDigestSecondaryTo159'\n            }\n        },\n        RawBabePreDigestPrimaryTo159: {\n            authorityIndex: 'u32',\n            slotNumber: 'SlotNumber',\n            weight: 'BabeBlockWeight',\n            vrfOutput: 'VrfOutput',\n            vrfProof: 'VrfProof'\n        },\n        RawBabePreDigestSecondaryTo159: {\n            authorityIndex: 'u32',\n            slotNumber: 'SlotNumber',\n            weight: 'BabeBlockWeight'\n        },\n        // a cross old/new compatible version of the digest, that is _only_ useful\n        // for partial parsing and extraction of the author. This assumes that all\n        // entries has the authorityIndex in the first position - and that it is all\n        // we are interested in\n        RawBabePreDigestCompat: {\n            _enum: {\n                Zero: 'u32',\n                One: 'u32',\n                Two: 'u32',\n                Three: 'u32'\n            }\n        },\n        SlotNumber: 'u64',\n        VrfData: '[u8; 32]',\n        VrfOutput: '[u8; 32]',\n        VrfProof: '[u8; 64]'\n    }\n};\n","export const rpc = {\n    epochAuthorship: {\n        description: 'Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the keystore',\n        isUnsafe: true,\n        params: [],\n        type: 'HashMap<AuthorityId, EpochAuthorship>'\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        AccountData: {\n            free: 'Balance',\n            reserved: 'Balance',\n            miscFrozen: 'Balance',\n            feeFrozen: 'Balance'\n        },\n        BalanceLockTo212: {\n            id: 'LockIdentifier',\n            amount: 'Balance',\n            until: 'BlockNumber',\n            reasons: 'WithdrawReasons'\n        },\n        BalanceLock: {\n            id: 'LockIdentifier',\n            amount: 'Balance',\n            reasons: 'Reasons'\n        },\n        BalanceStatus: {\n            _enum: ['Free', 'Reserved']\n        },\n        Reasons: {\n            _enum: ['Fee', 'Misc', 'All']\n        },\n        ReserveData: {\n            id: 'ReserveIdentifier',\n            amount: 'Balance'\n        },\n        ReserveIdentifier: '[u8; 8]',\n        VestingSchedule: {\n            offset: 'Balance',\n            perBlock: 'Balance',\n            startingBlock: 'BlockNumber'\n        },\n        WithdrawReasons: {\n            _set: {\n                TransactionPayment: 1,\n                Transfer: 2,\n                Reserve: 4,\n                Fee: 8,\n                Tip: 16\n            }\n        }\n    }\n};\n","const BEEFY_V1_V3 = {\n    beefy_genesis: {\n        description: 'Return the block number where BEEFY consensus is enabled/started',\n        params: [],\n        type: 'Option<BlockNumber>'\n    },\n    generate_key_ownership_proof: {\n        description: 'Generates a proof of key ownership for the given authority in the given set.',\n        params: [\n            {\n                name: 'setId',\n                type: 'ValidatorSetId'\n            },\n            {\n                name: 'authorityId',\n                type: 'AuthorityId'\n            }\n        ],\n        type: 'Option<OpaqueKeyOwnershipProof>'\n    },\n    submit_report_equivocation_unsigned_extrinsic: {\n        description: 'Submits an unsigned extrinsic to report an equivocation.',\n        params: [\n            {\n                name: 'equivocationProof',\n                type: 'BeefyEquivocationProof'\n            },\n            {\n                name: 'keyOwnerProof',\n                type: 'OpaqueKeyOwnershipProof'\n            }\n        ],\n        type: 'Option<Null>'\n    },\n    validator_set: {\n        description: 'Return the current active BEEFY validator set',\n        params: [],\n        type: 'Option<ValidatorSet>'\n    }\n};\nconst BEEFY_MMR_V1 = {\n    authority_set_proof: {\n        description: 'Return the currently active BEEFY authority set proof.',\n        params: [],\n        type: 'BeefyAuthoritySet'\n    },\n    next_authority_set_proof: {\n        description: 'Return the next/queued BEEFY authority set proof.',\n        params: [],\n        type: 'BeefyNextAuthoritySet'\n    }\n};\nexport const runtime = {\n    BeefyApi: [\n        {\n            methods: BEEFY_V1_V3,\n            version: 3\n        },\n        {\n            methods: BEEFY_V1_V3,\n            version: 2\n        },\n        {\n            methods: BEEFY_V1_V3,\n            version: 1\n        }\n    ],\n    BeefyMmrApi: [\n        {\n            methods: BEEFY_MMR_V1,\n            version: 1\n        }\n    ]\n};\n","import { rpc } from './rpc.js';\nimport { runtime } from './runtime.js';\nexport default {\n    rpc,\n    runtime,\n    types: {\n        BeefyAuthoritySet: {\n            id: 'u64',\n            len: 'u32',\n            root: 'H256'\n        },\n        BeefyCommitment: {\n            payload: 'BeefyPayload',\n            blockNumber: 'BlockNumber',\n            validatorSetId: 'ValidatorSetId'\n        },\n        BeefyId: '[u8; 33]',\n        BeefyEquivocationProof: {\n            first: 'BeefyVoteMessage',\n            second: 'BeefyVoteMessage'\n        },\n        BeefySignedCommitment: {\n            commitment: 'BeefyCommitment',\n            signatures: 'Vec<Option<EcdsaSignature>>'\n        },\n        BeefyNextAuthoritySet: {\n            id: 'u64',\n            len: 'u32',\n            root: 'H256'\n        },\n        BeefyPayload: 'Vec<(BeefyPayloadId, Bytes)>',\n        BeefyPayloadId: '[u8;2]',\n        BeefyVoteMessage: {\n            commitment: 'BeefyCommitment',\n            id: 'AuthorityId',\n            signature: 'Signature'\n        },\n        MmrRootHash: 'H256',\n        ValidatorSetId: 'u64',\n        ValidatorSet: {\n            validators: 'Vec<AuthorityId>',\n            id: 'ValidatorSetId'\n        }\n    }\n};\n","export const rpc = {\n    getFinalizedHead: {\n        description: 'Returns hash of the latest BEEFY finalized block as seen by this client.',\n        params: [],\n        type: 'H256'\n    },\n    subscribeJustifications: {\n        description: 'Returns the block most recently finalized by BEEFY, alongside side its justification.',\n        params: [],\n        pubsub: [\n            'justifications',\n            'subscribeJustifications',\n            'unsubscribeJustifications'\n        ],\n        type: 'BeefySignedCommitment'\n    }\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        BenchmarkBatch: {\n            pallet: 'Text',\n            instance: 'Text',\n            benchmark: 'Text',\n            results: 'Vec<BenchmarkResult>'\n        },\n        BenchmarkConfig: {\n            pallet: 'Bytes',\n            benchmark: 'Bytes',\n            selectedComponents: 'Vec<(BenchmarkParameter, u32)>',\n            verify: 'bool',\n            internalRepeats: 'u32'\n        },\n        BenchmarkList: {\n            pallet: 'Bytes',\n            instance: 'Bytes',\n            benchmarks: 'Vec<BenchmarkMetadata>'\n        },\n        BenchmarkMetadata: {\n            name: 'Bytes',\n            components: 'Vec<(BenchmarkParameter, u32, u32)>'\n        },\n        BenchmarkParameter: {\n            _enum: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']\n        },\n        BenchmarkResult: {\n            components: 'Vec<(BenchmarkParameter, u32)>',\n            extrinsicTime: 'u128',\n            storageRootTime: 'u128',\n            reads: 'u32',\n            repeatReads: 'u32',\n            writes: 'u32',\n            repeatWrites: 'u32',\n            proofSize: 'u32',\n            benchKeys: 'Vec<(Vec<u8>, u32, u32, bool)>'\n        }\n    }\n};\n","export const runtime = {\n    Benchmark: [\n        {\n            methods: {\n                benchmark_metadata: {\n                    description: 'Get the benchmark metadata available for this runtime.',\n                    params: [\n                        {\n                            name: 'extra',\n                            type: 'bool'\n                        }\n                    ],\n                    type: '(Vec<BenchmarkList>, Vec<StorageInfo>)'\n                },\n                dispatch_benchmark: {\n                    description: 'Dispatch the given benchmark.',\n                    params: [\n                        {\n                            name: 'config',\n                            type: 'BenchmarkConfig'\n                        }\n                    ],\n                    type: 'Result<Vec<BenchmarkBatch>, Text>'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","const BB_V2_TO_V4 = {\n    // this was removed after V4\n    random_seed: {\n        description: 'Generate a random seed.',\n        params: [],\n        type: 'Hash'\n    }\n};\nconst BB_V2_TO_V5 = {\n    apply_extrinsic: {\n        description: 'Apply the given extrinsic.',\n        params: [\n            {\n                name: 'extrinsic',\n                type: 'Extrinsic'\n            }\n        ],\n        type: 'ApplyExtrinsicResultPre6'\n    }\n};\nconst BB_V2_TO_V6 = {\n    check_inherents: {\n        description: 'Check that the inherents are valid.',\n        params: [\n            {\n                name: 'block',\n                type: 'Block'\n            },\n            {\n                name: 'data',\n                type: 'InherentData'\n            }\n        ],\n        type: 'CheckInherentsResult'\n    },\n    inherent_extrinsics: {\n        description: 'Generate inherent extrinsics.',\n        params: [\n            {\n                name: 'inherent',\n                type: 'InherentData'\n            }\n        ],\n        type: 'Vec<Extrinsic>'\n    }\n};\nconst BB_V3_TO_V6 = {\n    // renamed in v3 from finalize_block\n    finalize_block: {\n        description: 'Finish the current block.',\n        params: [],\n        type: 'Header'\n    }\n};\nexport const runtime = {\n    BlockBuilder: [\n        {\n            methods: {\n                apply_extrinsic: {\n                    description: 'Apply the given extrinsic.',\n                    params: [\n                        {\n                            name: 'extrinsic',\n                            type: 'Extrinsic'\n                        }\n                    ],\n                    type: 'ApplyExtrinsicResult'\n                },\n                ...BB_V2_TO_V6,\n                ...BB_V3_TO_V6\n            },\n            version: 6\n        },\n        {\n            methods: {\n                // apply_extrinsic result changed in 6\n                ...BB_V2_TO_V5,\n                ...BB_V2_TO_V6,\n                ...BB_V3_TO_V6\n            },\n            version: 5\n        },\n        {\n            methods: {\n                // random_seed removed\n                ...BB_V2_TO_V4,\n                ...BB_V2_TO_V5,\n                ...BB_V2_TO_V6,\n                ...BB_V3_TO_V6\n            },\n            version: 4\n        },\n        {\n            methods: {\n                // finalize_block renamed\n                ...BB_V2_TO_V4,\n                ...BB_V2_TO_V6,\n                ...BB_V3_TO_V6\n            },\n            version: 3\n        },\n        {\n            methods: {\n                finalise_block: {\n                    description: 'Finish the current block.',\n                    params: [],\n                    type: 'Header'\n                },\n                ...BB_V2_TO_V4,\n                ...BB_V2_TO_V6\n            },\n            version: 2\n        }\n    ]\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        CheckInherentsResult: {\n            okay: 'bool',\n            fatalError: 'bool',\n            errors: 'InherentData'\n        },\n        InherentData: {\n            data: 'BTreeMap<InherentIdentifier, Bytes>'\n        },\n        InherentIdentifier: '[u8; 8]'\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        CollectiveOrigin: {\n            _enum: {\n                Members: '(MemberCount, MemberCount)',\n                Member: 'AccountId'\n            }\n        },\n        MemberCount: 'u32',\n        ProposalIndex: 'u32',\n        VotesTo230: {\n            index: 'ProposalIndex',\n            threshold: 'MemberCount',\n            ayes: 'Vec<AccountId>',\n            nays: 'Vec<AccountId>'\n        },\n        Votes: {\n            index: 'ProposalIndex',\n            threshold: 'MemberCount',\n            ayes: 'Vec<AccountId>',\n            nays: 'Vec<AccountId>',\n            end: 'BlockNumber'\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        AuthorityId: 'AccountId',\n        RawVRFOutput: '[u8; 32]'\n    }\n};\n","const SHARED_V1_V2 = {\n    get_storage: {\n        description: 'Query a given storage key in a given contract.',\n        params: [\n            {\n                name: 'address',\n                type: 'AccountId'\n            },\n            {\n                name: 'key',\n                type: 'Bytes'\n            }\n        ],\n        type: 'Option<Bytes>'\n    },\n    upload_code: {\n        description: 'Upload new code without instantiating a contract from it.',\n        params: [\n            {\n                name: 'origin',\n                type: 'AccountId'\n            },\n            {\n                name: 'code',\n                type: 'Bytes'\n            },\n            {\n                name: 'storageDepositLimit',\n                type: 'Option<Balance>'\n            }\n        ],\n        type: 'CodeUploadResult'\n    }\n};\nexport const runtime = {\n    ContractsApi: [\n        {\n            methods: {\n                call: {\n                    description: 'Perform a call from a specified account to a given contract.',\n                    params: [\n                        {\n                            name: 'origin',\n                            type: 'AccountId'\n                        },\n                        {\n                            name: 'dest',\n                            type: 'AccountId'\n                        },\n                        {\n                            name: 'value',\n                            type: 'Balance'\n                        },\n                        {\n                            name: 'gasLimit',\n                            type: 'Option<WeightV2>'\n                        },\n                        {\n                            name: 'storageDepositLimit',\n                            type: 'Option<Balance>'\n                        },\n                        {\n                            name: 'inputData',\n                            type: 'Vec<u8>'\n                        }\n                    ],\n                    type: 'ContractExecResult'\n                },\n                instantiate: {\n                    description: 'Instantiate a new contract.',\n                    params: [\n                        {\n                            name: 'origin',\n                            type: 'AccountId'\n                        },\n                        {\n                            name: 'value',\n                            type: 'Balance'\n                        },\n                        {\n                            name: 'gasLimit',\n                            type: 'Option<WeightV2>'\n                        },\n                        {\n                            name: 'storageDepositLimit',\n                            type: 'Option<Balance>'\n                        },\n                        {\n                            name: 'code',\n                            type: 'CodeSource'\n                        },\n                        {\n                            name: 'data',\n                            type: 'Bytes'\n                        },\n                        {\n                            name: 'salt',\n                            type: 'Bytes'\n                        }\n                    ],\n                    type: 'ContractInstantiateResult'\n                },\n                ...SHARED_V1_V2\n            },\n            version: 2\n        },\n        {\n            methods: {\n                call: {\n                    description: 'Perform a call from a specified account to a given contract.',\n                    params: [\n                        {\n                            name: 'origin',\n                            type: 'AccountId'\n                        },\n                        {\n                            name: 'dest',\n                            type: 'AccountId'\n                        },\n                        {\n                            name: 'value',\n                            type: 'Balance'\n                        },\n                        {\n                            name: 'gasLimit',\n                            type: 'u64'\n                        },\n                        {\n                            name: 'storageDepositLimit',\n                            type: 'Option<Balance>'\n                        },\n                        {\n                            name: 'inputData',\n                            type: 'Vec<u8>'\n                        }\n                    ],\n                    type: 'ContractExecResultU64'\n                },\n                instantiate: {\n                    description: 'Instantiate a new contract.',\n                    params: [\n                        {\n                            name: 'origin',\n                            type: 'AccountId'\n                        },\n                        {\n                            name: 'value',\n                            type: 'Balance'\n                        },\n                        {\n                            name: 'gasLimit',\n                            type: 'u64'\n                        },\n                        {\n                            name: 'storageDepositLimit',\n                            type: 'Option<Balance>'\n                        },\n                        {\n                            name: 'code',\n                            type: 'CodeSource'\n                        },\n                        {\n                            name: 'data',\n                            type: 'Bytes'\n                        },\n                        {\n                            name: 'salt',\n                            type: 'Bytes'\n                        }\n                    ],\n                    type: 'ContractInstantiateResultU64'\n                },\n                ...SHARED_V1_V2\n            },\n            version: 1\n        }\n    ]\n};\n","import { rpc } from './rpc.js';\nimport { runtime } from './runtime.js';\nexport default {\n    rpc,\n    runtime,\n    types: {\n        AliveContractInfo: {\n            trieId: 'TrieId',\n            storageSize: 'u32',\n            pairCount: 'u32',\n            codeHash: 'CodeHash',\n            rentAllowance: 'Balance',\n            rentPaid: 'Balance',\n            deductBlock: 'BlockNumber',\n            lastWrite: 'Option<BlockNumber>',\n            _reserved: 'Option<Null>'\n        },\n        CodeHash: 'Hash',\n        CodeSource: {\n            _enum: {\n                Upload: 'Bytes',\n                Existing: 'Hash'\n            }\n        },\n        CodeUploadRequest: {\n            origin: 'AccountId',\n            code: 'Bytes',\n            storageDepositLimit: 'Option<Balance>'\n        },\n        CodeUploadResult: 'Result<CodeUploadResultValue, DispatchError>',\n        CodeUploadResultValue: {\n            codeHash: 'CodeHash',\n            deposit: 'Balance'\n        },\n        ContractCallRequest: {\n            origin: 'AccountId',\n            dest: 'AccountId',\n            value: 'Balance',\n            gasLimit: 'u64',\n            storageDepositLimit: 'Option<Balance>',\n            inputData: 'Bytes'\n        },\n        ContractExecResultSuccessTo255: {\n            status: 'u8',\n            data: 'Raw'\n        },\n        ContractExecResultTo255: {\n            _enum: {\n                Success: 'ContractExecResultSuccessTo255',\n                Error: 'Null'\n            }\n        },\n        ContractExecResultSuccessTo260: {\n            flags: 'ContractReturnFlags',\n            data: 'Bytes',\n            gasConsumed: 'u64'\n        },\n        ContractExecResultTo260: {\n            _enum: {\n                Success: 'ContractExecResultSuccessTo260',\n                Error: 'Null'\n            }\n        },\n        ContractExecResultOk: {\n            flags: 'ContractReturnFlags',\n            data: 'Bytes'\n        },\n        ContractExecResultResult: 'Result<ContractExecResultOk, DispatchError>',\n        ContractExecResultTo267: {\n            gasConsumed: 'u64',\n            debugMessage: 'Text',\n            result: 'ContractExecResultResult'\n        },\n        ContractExecResult: {\n            gasConsumed: 'Weight',\n            gasRequired: 'Weight',\n            storageDeposit: 'StorageDeposit',\n            debugMessage: 'Text',\n            result: 'ContractExecResultResult'\n        },\n        ContractExecResultU64: {\n            gasConsumed: 'u64',\n            gasRequired: 'u64',\n            storageDeposit: 'StorageDeposit',\n            debugMessage: 'Text',\n            result: 'ContractExecResultResult'\n        },\n        ContractInfo: {\n            _enum: {\n                Alive: 'AliveContractInfo',\n                Tombstone: 'TombstoneContractInfo'\n            }\n        },\n        ContractCallFlags: {\n            _set: {\n                _bitLength: 32,\n                ForwardInput: 1,\n                CloneInput: 2,\n                TailCall: 4,\n                AllowReentry: 8\n            }\n        },\n        ContractReturnFlags: {\n            _set: {\n                _bitLength: 32,\n                Revert: 1\n            }\n        },\n        ContractStorageKey: '[u8; 32]',\n        DeletedContract: {\n            pairCount: 'u32',\n            trieId: 'TrieId'\n        },\n        ExecReturnValue: {\n            flags: 'ContractReturnFlags',\n            data: 'Bytes'\n        },\n        Gas: 'u64',\n        HostFnWeightsTo264: {\n            caller: 'Weight',\n            address: 'Weight',\n            gasLeft: 'Weight',\n            balance: 'Weight',\n            valueTransferred: 'Weight',\n            minimumBalance: 'Weight',\n            tombstoneDeposit: 'Weight',\n            rentAllowance: 'Weight',\n            blockNumber: 'Weight',\n            now: 'Weight',\n            weightToFee: 'Weight',\n            gas: 'Weight',\n            input: 'Weight',\n            inputPerByte: 'Weight',\n            return: 'Weight',\n            returnPerByte: 'Weight',\n            terminate: 'Weight',\n            restoreTo: 'Weight',\n            restoreToPerDelta: 'Weight',\n            random: 'Weight',\n            depositEvent: 'Weight',\n            depositEventPerTopic: 'Weight',\n            depositEventPerByte: 'Weight',\n            setRentAllowance: 'Weight',\n            setStorage: 'Weight',\n            setStoragePerByte: 'Weight',\n            clearStorage: 'Weight',\n            getStorage: 'Weight',\n            getStoragePerByte: 'Weight',\n            transfer: 'Weight',\n            call: 'Weight',\n            callTransferSurcharge: 'Weight',\n            callPerInputByte: 'Weight',\n            callPerOutputByte: 'Weight',\n            instantiate: 'Weight',\n            instantiatePerInputByte: 'Weight',\n            instantiatePerOutputByte: 'Weight',\n            hashSha2256: 'Weight',\n            hashSha2256PerByte: 'Weight',\n            hashKeccak256: 'Weight',\n            hashKeccak256PerByte: 'Weight',\n            hashBlake2256: 'Weight',\n            hashBlake2256PerByte: 'Weight',\n            hashBlake2128: 'Weight',\n            hashBlake2128PerByte: 'Weight'\n        },\n        HostFnWeights: {\n            caller: 'Weight',\n            address: 'Weight',\n            gasLeft: 'Weight',\n            balance: 'Weight',\n            valueTransferred: 'Weight',\n            minimumBalance: 'Weight',\n            tombstoneDeposit: 'Weight',\n            rentAllowance: 'Weight',\n            blockNumber: 'Weight',\n            now: 'Weight',\n            weightToFee: 'Weight',\n            gas: 'Weight',\n            input: 'Weight',\n            inputPerByte: 'Weight',\n            return: 'Weight',\n            returnPerByte: 'Weight',\n            terminate: 'Weight',\n            terminatePerCodeByte: 'Weight',\n            restoreTo: 'Weight',\n            restoreToPerCallerCodeByte: 'Weight',\n            restoreToPerTombstoneCodeByte: 'Weight',\n            restoreToPerDelta: 'Weight',\n            random: 'Weight',\n            depositEvent: 'Weight',\n            depositEventPerTopic: 'Weight',\n            depositEventPerByte: 'Weight',\n            setRentAllowance: 'Weight',\n            setStorage: 'Weight',\n            setStoragePerByte: 'Weight',\n            clearStorage: 'Weight',\n            getStorage: 'Weight',\n            getStoragePerByte: 'Weight',\n            transfer: 'Weight',\n            call: 'Weight',\n            callPerCodeByte: 'Weight',\n            callTransferSurcharge: 'Weight',\n            callPerInputByte: 'Weight',\n            callPerOutputByte: 'Weight',\n            instantiate: 'Weight',\n            instantiatePerCodeByte: 'Weight',\n            instantiatePerInputByte: 'Weight',\n            instantiatePerOutputByte: 'Weight',\n            instantiatePerSaltByte: 'Weight',\n            hashSha2256: 'Weight',\n            hashSha2256PerByte: 'Weight',\n            hashKeccak256: 'Weight',\n            hashKeccak256PerByte: 'Weight',\n            hashBlake2256: 'Weight',\n            hashBlake2256PerByte: 'Weight',\n            hashBlake2128: 'Weight',\n            hashBlake2128PerByte: 'Weight',\n            rentParams: 'Weight'\n        },\n        InstantiateRequestV1: {\n            origin: 'AccountId',\n            value: 'Balance',\n            gasLimit: 'Gas',\n            code: 'Bytes',\n            data: 'Bytes',\n            salt: 'Bytes'\n        },\n        InstantiateRequestV2: {\n            _fallback: 'InstantiateRequestV1',\n            origin: 'AccountId',\n            value: 'Balance',\n            gasLimit: 'Gas',\n            storageDepositLimit: 'Option<Balance>',\n            code: 'Bytes',\n            data: 'Bytes',\n            salt: 'Bytes'\n        },\n        InstantiateRequest: {\n            _fallback: 'InstantiateRequestV2',\n            origin: 'AccountId',\n            value: 'Balance',\n            gasLimit: 'Gas',\n            storageDepositLimit: 'Option<Balance>',\n            code: 'CodeSource',\n            data: 'Bytes',\n            salt: 'Bytes'\n        },\n        ContractInstantiateResultTo267: 'Result<InstantiateReturnValueTo267, Null>',\n        ContractInstantiateResultTo299: 'Result<InstantiateReturnValueOk, Null>',\n        ContractInstantiateResult: {\n            gasConsumed: 'WeightV2',\n            gasRequired: 'WeightV2',\n            storageDeposit: 'StorageDeposit',\n            debugMessage: 'Text',\n            result: 'InstantiateReturnValue'\n        },\n        ContractInstantiateResultU64: {\n            // only this one can fail, the current version (above) _should_ be correctly\n            // versioned now, aka no more deprecated RPCs involved, only runtime calls\n            _fallback: 'ContractInstantiateResultTo299',\n            gasConsumed: 'u64',\n            gasRequired: 'u64',\n            storageDeposit: 'StorageDeposit',\n            debugMessage: 'Text',\n            result: 'InstantiateReturnValue'\n        },\n        InstantiateReturnValueTo267: {\n            result: 'ExecReturnValue',\n            accountId: 'AccountId',\n            rentProjection: 'Option<RentProjection>'\n        },\n        InstantiateReturnValueOk: {\n            result: 'ExecReturnValue',\n            accountId: 'AccountId'\n        },\n        InstantiateReturnValue: 'Result<InstantiateReturnValueOk, DispatchError>',\n        InstructionWeights: {\n            i64const: 'u32',\n            i64load: 'u32',\n            i64store: 'u32',\n            select: 'u32',\n            rIf: 'u32',\n            br: 'u32',\n            brIf: 'u32',\n            brIable: 'u32',\n            brIablePerEntry: 'u32',\n            call: 'u32',\n            callIndirect: 'u32',\n            callIndirectPerParam: 'u32',\n            localGet: 'u32',\n            localSet: 'u32',\n            local_tee: 'u32',\n            globalGet: 'u32',\n            globalSet: 'u32',\n            memoryCurrent: 'u32',\n            memoryGrow: 'u32',\n            i64clz: 'u32',\n            i64ctz: 'u32',\n            i64popcnt: 'u32',\n            i64eqz: 'u32',\n            i64extendsi32: 'u32',\n            i64extendui32: 'u32',\n            i32wrapi64: 'u32',\n            i64eq: 'u32',\n            i64ne: 'u32',\n            i64lts: 'u32',\n            i64ltu: 'u32',\n            i64gts: 'u32',\n            i64gtu: 'u32',\n            i64les: 'u32',\n            i64leu: 'u32',\n            i64ges: 'u32',\n            i64geu: 'u32',\n            i64add: 'u32',\n            i64sub: 'u32',\n            i64mul: 'u32',\n            i64divs: 'u32',\n            i64divu: 'u32',\n            i64rems: 'u32',\n            i64remu: 'u32',\n            i64and: 'u32',\n            i64or: 'u32',\n            i64xor: 'u32',\n            i64shl: 'u32',\n            i64shrs: 'u32',\n            i64shru: 'u32',\n            i64rotl: 'u32',\n            i64rotr: 'u32'\n        },\n        LimitsTo264: {\n            eventTopics: 'u32',\n            stackHeight: 'u32',\n            globals: 'u32',\n            parameters: 'u32',\n            memoryPages: 'u32',\n            tableSize: 'u32',\n            brTableSize: 'u32',\n            subjectLen: 'u32',\n            codeSize: 'u32'\n        },\n        Limits: {\n            eventTopics: 'u32',\n            stackHeight: 'u32',\n            globals: 'u32',\n            parameters: 'u32',\n            memoryPages: 'u32',\n            tableSize: 'u32',\n            brTableSize: 'u32',\n            subjectLen: 'u32'\n        },\n        PrefabWasmModule: {\n            scheduleVersion: 'Compact<u32>',\n            initial: 'Compact<u32>',\n            maximum: 'Compact<u32>',\n            refcount: 'Compact<u64>',\n            _reserved: 'Option<Null>',\n            code: 'Bytes',\n            originalCodeLen: 'u32'\n        },\n        RentProjection: {\n            _enum: {\n                EvictionAt: 'BlockNumber',\n                NoEviction: 'Null'\n            }\n        },\n        ScheduleTo212: {\n            version: 'u32',\n            putCodePerByteCost: 'Gas',\n            growMemCost: 'Gas',\n            regularOpCost: 'Gas',\n            returnDataPerByteCost: 'Gas',\n            eventDataPerByteCost: 'Gas',\n            eventPerTopicCost: 'Gas',\n            eventBaseCost: 'Gas',\n            sandboxDataReadCost: 'Gas',\n            sandboxDataWriteCost: 'Gas',\n            maxEventTopics: 'u32',\n            maxStackHeight: 'u32',\n            maxMemoryPages: 'u32',\n            enablePrintln: 'bool',\n            maxSubjectLen: 'u32'\n        },\n        ScheduleTo258: {\n            version: 'u32',\n            putCodePerByteCost: 'Gas',\n            growMemCost: 'Gas',\n            regularOpCost: 'Gas',\n            returnDataPerByteCost: 'Gas',\n            eventDataPerByteCost: 'Gas',\n            eventPerTopicCost: 'Gas',\n            eventBaseCost: 'Gas',\n            sandboxDataReadCost: 'Gas',\n            sandboxDataWriteCost: 'Gas',\n            transferCost: 'Gas',\n            maxEventTopics: 'u32',\n            maxStackHeight: 'u32',\n            maxMemoryPages: 'u32',\n            enablePrintln: 'bool',\n            maxSubjectLen: 'u32'\n        },\n        ScheduleTo264: {\n            version: 'u32',\n            enablePrintln: 'bool',\n            limits: 'LimitsTo264',\n            instructionWeights: 'InstructionWeights',\n            hostFnWeights: 'HostFnWeightsTo264'\n        },\n        Schedule: {\n            version: 'u32',\n            enablePrintln: 'bool',\n            limits: 'Limits',\n            instructionWeights: 'InstructionWeights',\n            hostFnWeights: 'HostFnWeights'\n        },\n        SeedOf: 'Hash',\n        StorageDeposit: {\n            _enum: {\n                Refund: 'Balance',\n                Charge: 'Balance'\n            }\n        },\n        TombstoneContractInfo: 'Hash',\n        TrieId: 'Bytes'\n    }\n};\n","export const rpc = {\n    call: {\n        deprecated: 'Use the runtime interface `api.call.contractsApi.call` instead',\n        description: 'Executes a call to a contract',\n        params: [\n            {\n                name: 'callRequest',\n                type: 'ContractCallRequest'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'ContractExecResult'\n    },\n    getStorage: {\n        deprecated: 'Use the runtime interface `api.call.contractsApi.getStorage` instead',\n        description: 'Returns the value under a specified storage key in a contract',\n        params: [\n            {\n                name: 'address',\n                type: 'AccountId'\n            },\n            {\n                name: 'key',\n                type: 'H256'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Option<Bytes>'\n    },\n    instantiate: {\n        deprecated: 'Use the runtime interface `api.call.contractsApi.instantiate` instead',\n        description: 'Instantiate a new contract',\n        params: [\n            {\n                name: 'request',\n                type: 'InstantiateRequestV1'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'ContractInstantiateResult'\n    },\n    rentProjection: {\n        deprecated: 'Not available in newer versions of the contracts interfaces',\n        description: 'Returns the projected time a given contract will be able to sustain paying its rent',\n        params: [\n            {\n                name: 'address',\n                type: 'AccountId'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Option<BlockNumber>'\n    },\n    uploadCode: {\n        deprecated: 'Use the runtime interface `api.call.contractsApi.uploadCode` instead',\n        description: 'Upload new code without instantiating a contract from it',\n        // The RPC here is terribly misnamed - somebody forgot how the RPCs\n        // are actually done, ie. <module>_<camelCasedMethod>\n        endpoint: 'contracts_upload_code',\n        params: [\n            {\n                name: 'uploadRequest',\n                type: 'CodeUploadRequest'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'CodeUploadResult'\n    }\n};\n","export const AllConvictions = [\n    // 0.1x votes, unlocked.\n    'None',\n    // 1x votes, locked for an enactment period following a successful vote.\n    'Locked1x',\n    // 2x votes, locked for 2x enactment periods following a successful vote.\n    'Locked2x',\n    // 3x votes, locked for 4x...\n    'Locked3x',\n    // 4x votes, locked for 8x...\n    'Locked4x',\n    // 5x votes, locked for 16x...\n    'Locked5x',\n    // 6x votes, locked for 32x...\n    'Locked6x'\n];\nexport default {\n    rpc: {},\n    types: {\n        AccountVote: {\n            _enum: {\n                Standard: 'AccountVoteStandard',\n                Split: 'AccountVoteSplit'\n            }\n        },\n        AccountVoteSplit: {\n            aye: 'Balance',\n            nay: 'Balance'\n        },\n        AccountVoteStandard: {\n            vote: 'Vote',\n            balance: 'Balance'\n        },\n        Conviction: {\n            _enum: AllConvictions\n        },\n        Delegations: {\n            votes: 'Balance',\n            capital: 'Balance'\n        },\n        PreimageStatus: {\n            _enum: {\n                Missing: 'BlockNumber',\n                Available: 'PreimageStatusAvailable'\n            }\n        },\n        PreimageStatusAvailable: {\n            data: 'Bytes',\n            provider: 'AccountId',\n            deposit: 'Balance',\n            since: 'BlockNumber',\n            expiry: 'Option<BlockNumber>'\n        },\n        PriorLock: '(BlockNumber, Balance)',\n        PropIndex: 'u32',\n        Proposal: 'Call',\n        ProxyState: {\n            _enum: {\n                Open: 'AccountId',\n                Active: 'AccountId'\n            }\n        },\n        ReferendumIndex: 'u32',\n        ReferendumInfoTo239: {\n            end: 'BlockNumber',\n            proposalHash: 'Hash',\n            threshold: 'VoteThreshold',\n            delay: 'BlockNumber'\n        },\n        ReferendumInfo: {\n            _enum: {\n                Ongoing: 'ReferendumStatus',\n                Finished: 'ReferendumInfoFinished'\n            }\n        },\n        ReferendumInfoFinished: {\n            approved: 'bool',\n            end: 'BlockNumber'\n        },\n        ReferendumStatus: {\n            end: 'BlockNumber',\n            proposalHash: 'Hash',\n            threshold: 'VoteThreshold',\n            delay: 'BlockNumber',\n            tally: 'Tally'\n        },\n        Tally: {\n            ayes: 'Balance',\n            nays: 'Balance',\n            turnout: 'Balance'\n        },\n        Voting: {\n            _enum: {\n                Direct: 'VotingDirect',\n                Delegating: 'VotingDelegating'\n            }\n        },\n        VotingDirect: {\n            votes: 'Vec<VotingDirectVote>',\n            delegations: 'Delegations',\n            prior: 'PriorLock'\n        },\n        VotingDirectVote: '(ReferendumIndex, AccountVote)',\n        VotingDelegating: {\n            balance: 'Balance',\n            target: 'AccountId',\n            conviction: 'Conviction',\n            delegations: 'Delegations',\n            prior: 'PriorLock'\n        }\n    }\n};\n","import { rpc } from './rpc.js';\nexport default {\n    rpc,\n    types: {\n        BlockStats: {\n            witnessLen: 'u64',\n            witnessCompactLen: 'u64',\n            blockLen: 'u64',\n            blockNumExtrinsics: 'u64'\n        }\n    }\n};\n","export const rpc = {\n    getBlockStats: {\n        description: 'Reexecute the specified `block_hash` and gather statistics while doing so',\n        isUnsafe: true,\n        params: [\n            {\n                isHistoric: true,\n                name: 'at',\n                type: 'Hash'\n            }\n        ],\n        type: 'Option<BlockStats>'\n    }\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {}\n};\n","export const runtime = {\n    AuthorityDiscoveryApi: [\n        {\n            methods: {\n                authorities: {\n                    description: 'Retrieve authority identifiers of the current and next authority set.',\n                    params: [],\n                    type: 'Vec<AuthorityId>'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","export default {\n    rpc: {},\n    types: {\n        ApprovalFlag: 'u32',\n        DefunctVoter: {\n            who: 'AccountId',\n            voteCount: 'Compact<u32>',\n            candidateCount: 'Compact<u32>'\n        },\n        Renouncing: {\n            _enum: {\n                Member: 'Null',\n                RunnerUp: 'Null',\n                Candidate: 'Compact<u32>'\n            }\n        },\n        SetIndex: 'u32',\n        Vote: 'GenericVote',\n        VoteIndex: 'u32',\n        VoterInfo: {\n            lastActive: 'VoteIndex',\n            lastWin: 'VoteIndex',\n            pot: 'Balance',\n            stake: 'Balance'\n        },\n        VoteThreshold: {\n            _enum: [\n                'Super Majority Approve',\n                'Super Majority Against',\n                'Simple Majority'\n            ]\n        }\n    }\n};\n","import { rpc } from './rpc.js';\nexport default {\n    rpc,\n    types: {\n        CreatedBlock: {\n            _alias: {\n                blockHash: 'hash'\n            },\n            blockHash: 'BlockHash',\n            aux: 'ImportedAux'\n        },\n        ImportedAux: {\n            headerOnly: 'bool',\n            clearJustificationRequests: 'bool',\n            needsJustification: 'bool',\n            badJustification: 'bool',\n            needsFinalityProof: 'bool',\n            isNewBest: 'bool'\n        }\n    }\n};\n","export const rpc = {\n    createBlock: {\n        description: 'Instructs the manual-seal authorship task to create a new block',\n        params: [\n            {\n                name: 'createEmpty',\n                type: 'bool'\n            },\n            {\n                name: 'finalize',\n                type: 'bool'\n            },\n            {\n                isOptional: true,\n                name: 'parentHash',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'CreatedBlock'\n    },\n    finalizeBlock: {\n        description: 'Instructs the manual-seal authorship task to finalize a block',\n        params: [\n            {\n                name: 'hash',\n                type: 'BlockHash'\n            },\n            {\n                isOptional: true,\n                name: 'justification',\n                type: 'Justification'\n            }\n        ],\n        type: 'bool'\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        EvmAccount: {\n            nonce: 'u256',\n            balance: 'u256'\n        },\n        EvmCallInfo: {\n            exitReason: 'ExitReason',\n            value: 'Bytes',\n            usedGas: 'U256',\n            logs: 'Vec<EvmLog>'\n        },\n        EvmCreateInfo: {\n            exitReason: 'ExitReason',\n            value: 'H160',\n            usedGas: 'U256',\n            logs: 'Vec<EvmLog>'\n        },\n        EvmCallInfoV2: {\n            exitReason: 'ExitReason',\n            value: 'Bytes',\n            usedGas: 'U256',\n            weightInfo: 'Option<EvmWeightInfo>',\n            logs: 'Vec<EvmLog>'\n        },\n        EvmCreateInfoV2: {\n            exitReason: 'ExitReason',\n            value: 'H160',\n            usedGas: 'U256',\n            weightInfo: 'Option<EvmWeightInfo>',\n            logs: 'Vec<EvmLog>'\n        },\n        EvmLog: {\n            address: 'H160',\n            topics: 'Vec<H256>',\n            data: 'Bytes'\n        },\n        EvmVicinity: {\n            gasPrice: 'u256',\n            origin: 'H160'\n        },\n        EvmWeightInfo: {\n            refTimeLimit: 'Option<u64>',\n            proofSizeLimit: 'Option<u64>',\n            refTimeUsage: 'Option<u64>',\n            proofSizeUsage: 'Option<u64>'\n        },\n        ExitError: {\n            _enum: {\n                StackUnderflow: 'Null',\n                StackOverflow: 'Null',\n                InvalidJump: 'Null',\n                InvalidRange: 'Null',\n                DesignatedInvalid: 'Null',\n                CallTooDeep: 'Null',\n                CreateCollision: 'Null',\n                CreateContractLimit: 'Null',\n                OutOfOffset: 'Null',\n                OutOfGas: 'Null',\n                OutOfFund: 'Null',\n                PCUnderflow: 'Null',\n                CreateEmpty: 'Null',\n                Other: 'Text'\n            }\n        },\n        ExitFatal: {\n            _enum: {\n                NotSupported: 'Null',\n                UnhandledInterrupt: 'Null',\n                CallErrorAsFatal: 'ExitError',\n                Other: 'Text'\n            }\n        },\n        ExitReason: {\n            _enum: {\n                Succeed: 'ExitSucceed',\n                Error: 'ExitError',\n                Revert: 'ExitRevert',\n                Fatal: 'ExitFatal'\n            }\n        },\n        ExitRevert: {\n            _enum: ['Reverted']\n        },\n        ExitSucceed: {\n            _enum: ['Stopped', 'Returned', 'Suicided']\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        Extrinsic: 'GenericExtrinsic',\n        ExtrinsicEra: 'GenericExtrinsicEra',\n        ExtrinsicPayload: 'GenericExtrinsicPayload',\n        ExtrinsicSignature: 'MultiSignature',\n        ExtrinsicV4: 'GenericExtrinsicV4',\n        ExtrinsicPayloadV4: 'GenericExtrinsicPayloadV4',\n        ExtrinsicSignatureV4: 'GenericExtrinsicSignatureV4',\n        ExtrinsicUnknown: 'GenericExtrinsicUnknown',\n        ExtrinsicPayloadUnknown: 'GenericExtrinsicPayloadUnknown',\n        // eras\n        Era: 'ExtrinsicEra',\n        ImmortalEra: 'GenericImmortalEra',\n        MortalEra: 'GenericMortalEra',\n        // signatures & signer\n        AnySignature: 'H512',\n        MultiSignature: {\n            _enum: {\n                Ed25519: 'Ed25519Signature',\n                Sr25519: 'Sr25519Signature',\n                Ecdsa: 'EcdsaSignature'\n            }\n        },\n        Signature: 'H512',\n        SignerPayload: 'GenericSignerPayload',\n        EcdsaSignature: '[u8; 65]',\n        Ed25519Signature: 'H512',\n        Sr25519Signature: 'H512'\n    }\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        FungiblesAccessError: {\n            _enum: ['AssetIdConversionFailed', 'AmountToBalanceConversionFailed']\n        }\n    }\n};\n","export const runtime = {\n    FungiblesApi: [\n        {\n            methods: {\n                query_account_balances: {\n                    description: 'Returns the list of all `MultiAsset` that an `AccountId` has',\n                    params: [\n                        {\n                            name: 'account',\n                            type: 'AccountId'\n                        }\n                    ],\n                    type: 'Result<Vec<XcmV3MultiAsset>, FungiblesAccessError>'\n                }\n            },\n            version: 1\n        },\n        {\n            methods: {\n                query_account_balances: {\n                    description: 'Returns the list of all `MultiAsset` that an `AccountId` has',\n                    params: [\n                        {\n                            name: 'account',\n                            type: 'AccountId'\n                        }\n                    ],\n                    type: 'Result<XcmVersionedMultiAssets, FungiblesAccessError>'\n                }\n            },\n            version: 2\n        }\n    ]\n};\n","export default {\n    rpc: {},\n    types: {\n        AssetOptions: {\n            initalIssuance: 'Compact<Balance>',\n            permissions: 'PermissionLatest'\n        },\n        Owner: {\n            _enum: {\n                None: 'Null',\n                Address: 'AccountId'\n            }\n        },\n        PermissionsV1: {\n            update: 'Owner',\n            mint: 'Owner',\n            burn: 'Owner'\n        },\n        PermissionVersions: {\n            _enum: {\n                V1: 'PermissionsV1'\n            }\n        },\n        PermissionLatest: 'PermissionsV1'\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        ActiveGilt: {\n            proportion: 'Perquintill',\n            amount: 'Balance',\n            who: 'AccountId',\n            expiry: 'BlockNumber'\n        },\n        ActiveGiltsTotal: {\n            frozen: 'Balance',\n            proportion: 'Perquintill',\n            index: 'ActiveIndex',\n            target: 'Perquintill'\n        },\n        ActiveIndex: 'u32',\n        GiltBid: {\n            amount: 'Balance',\n            who: 'AccountId'\n        }\n    }\n};\n","const GRANDPA_V2_V3 = {\n    generate_key_ownership_proof: {\n        description: 'Generates a proof of key ownership for the given authority in the given set.',\n        params: [\n            {\n                name: 'setId',\n                type: 'SetId'\n            },\n            {\n                name: 'authorityId',\n                type: 'AuthorityId'\n            }\n        ],\n        type: 'Option<OpaqueKeyOwnershipProof>'\n    },\n    grandpa_authorities: {\n        description: 'Get the current GRANDPA authorities and weights. This should not change except for when changes are scheduled and the corresponding delay has passed.',\n        params: [],\n        type: 'AuthorityList'\n    },\n    submit_report_equivocation_unsigned_extrinsic: {\n        description: 'Submits an unsigned extrinsic to report an equivocation.',\n        params: [\n            {\n                name: 'equivocationProof',\n                type: 'GrandpaEquivocationProof'\n            },\n            {\n                name: 'keyOwnerProof',\n                type: 'OpaqueKeyOwnershipProof'\n            }\n        ],\n        type: 'Option<Null>'\n    }\n};\nexport const runtime = {\n    GrandpaApi: [\n        {\n            methods: {\n                current_set_id: {\n                    description: 'Get current GRANDPA authority set id.',\n                    params: [],\n                    type: 'SetId'\n                },\n                ...GRANDPA_V2_V3\n            },\n            version: 3\n        },\n        {\n            methods: GRANDPA_V2_V3,\n            version: 2\n        }\n    ]\n};\n","import { rpc } from './rpc.js';\nimport { runtime } from './runtime.js';\nexport default {\n    rpc,\n    runtime,\n    types: {\n        AuthorityIndex: 'u64',\n        AuthorityList: 'Vec<NextAuthority>',\n        AuthoritySet: {\n            currentAuthorities: 'AuthorityList',\n            setId: 'u64',\n            pendingStandardChanges: 'ForkTreePendingChange',\n            pendingForcedChanges: 'Vec<PendingChange>',\n            authoritySetChanges: 'AuthoritySetChanges'\n        },\n        ForkTreePendingChange: {\n            roots: 'Vec<ForkTreePendingChangeNode>',\n            bestFinalizedNumber: 'Option<BlockNumber>'\n        },\n        ForkTreePendingChangeNode: {\n            hash: 'BlockHash',\n            number: 'BlockNumber',\n            data: 'PendingChange',\n            children: 'Vec<ForkTreePendingChangeNode>'\n        },\n        AuthoritySetChange: '(U64, BlockNumber)',\n        AuthoritySetChanges: 'Vec<AuthoritySetChange>',\n        AuthorityWeight: 'u64',\n        DelayKind: {\n            _enum: {\n                Finalized: 'Null',\n                Best: 'DelayKindBest'\n            }\n        },\n        DelayKindBest: {\n            medianLastFinalized: 'BlockNumber'\n        },\n        EncodedFinalityProofs: 'Bytes',\n        GrandpaEquivocation: {\n            _enum: {\n                Prevote: 'GrandpaEquivocationValue',\n                Precommit: 'GrandpaEquivocationValue'\n            }\n        },\n        GrandpaEquivocationProof: {\n            setId: 'SetId',\n            equivocation: 'GrandpaEquivocation'\n        },\n        GrandpaEquivocationValue: {\n            roundNumber: 'u64',\n            identity: 'AuthorityId',\n            first: '(GrandpaPrevote, AuthoritySignature)',\n            second: '(GrandpaPrevote, AuthoritySignature)'\n        },\n        GrandpaPrevote: {\n            targetHash: 'Hash',\n            targetNumber: 'BlockNumber'\n        },\n        GrandpaCommit: {\n            targetHash: 'BlockHash',\n            targetNumber: 'BlockNumber',\n            precommits: 'Vec<GrandpaSignedPrecommit>'\n        },\n        GrandpaPrecommit: {\n            targetHash: 'BlockHash',\n            targetNumber: 'BlockNumber'\n        },\n        GrandpaSignedPrecommit: {\n            precommit: 'GrandpaPrecommit',\n            signature: 'AuthoritySignature',\n            id: 'AuthorityId'\n        },\n        GrandpaJustification: {\n            round: 'u64',\n            commit: 'GrandpaCommit',\n            votesAncestries: 'Vec<Header>'\n        },\n        JustificationNotification: 'Bytes',\n        KeyOwnerProof: 'MembershipProof',\n        NextAuthority: '(AuthorityId, AuthorityWeight)',\n        PendingChange: {\n            nextAuthorities: 'AuthorityList',\n            delay: 'BlockNumber',\n            canonHeight: 'BlockNumber',\n            canonHash: 'BlockHash',\n            delayKind: 'DelayKind'\n        },\n        PendingPause: {\n            scheduledAt: 'BlockNumber',\n            delay: 'BlockNumber'\n        },\n        PendingResume: {\n            scheduledAt: 'BlockNumber',\n            delay: 'BlockNumber'\n        },\n        Precommits: {\n            currentWeight: 'u32',\n            missing: 'BTreeSet<AuthorityId>'\n        },\n        Prevotes: {\n            currentWeight: 'u32',\n            missing: 'BTreeSet<AuthorityId>'\n        },\n        ReportedRoundStates: {\n            setId: 'u32',\n            best: 'RoundState',\n            background: 'Vec<RoundState>'\n        },\n        RoundState: {\n            round: 'u32',\n            totalWeight: 'u32',\n            thresholdWeight: 'u32',\n            prevotes: 'Prevotes',\n            precommits: 'Precommits'\n        },\n        SetId: 'u64',\n        StoredPendingChange: {\n            scheduledAt: 'BlockNumber',\n            delay: 'BlockNumber',\n            nextAuthorities: 'AuthorityList'\n        },\n        StoredState: {\n            _enum: {\n                Live: 'Null',\n                PendingPause: 'PendingPause',\n                Paused: 'Null',\n                PendingResume: 'PendingResume'\n            }\n        }\n    }\n};\n","export const rpc = {\n    proveFinality: {\n        description: 'Prove finality for the given block number, returning the Justification for the last block in the set.',\n        params: [\n            {\n                name: 'blockNumber',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'Option<EncodedFinalityProofs>'\n    },\n    roundState: {\n        description: 'Returns the state of the current best round state as well as the ongoing background rounds',\n        params: [],\n        type: 'ReportedRoundStates'\n    },\n    subscribeJustifications: {\n        description: 'Subscribes to grandpa justifications',\n        params: [],\n        pubsub: [\n            'justifications',\n            'subscribeJustifications',\n            'unsubscribeJustifications'\n        ],\n        type: 'JustificationNotification'\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        IdentityFields: {\n            _set: {\n                _bitLength: 64,\n                // Mapped here to 32 bits, in Rust these are 64-bit values\n                Display: 1,\n                Legal: 2,\n                Web: 4,\n                Riot: 8,\n                Email: 16,\n                PgpFingerprint: 32,\n                Image: 64,\n                Twitter: 128\n            }\n        },\n        IdentityInfoAdditional: '(Data, Data)',\n        IdentityInfoTo198: {\n            additional: 'Vec<IdentityInfoAdditional>',\n            display: 'Data',\n            legal: 'Data',\n            web: 'Data',\n            riot: 'Data',\n            email: 'Data',\n            pgpFingerprint: 'Option<H160>',\n            image: 'Data'\n        },\n        IdentityInfo: {\n            _fallback: 'IdentityInfoTo198',\n            additional: 'Vec<IdentityInfoAdditional>',\n            display: 'Data',\n            legal: 'Data',\n            web: 'Data',\n            riot: 'Data',\n            email: 'Data',\n            pgpFingerprint: 'Option<H160>',\n            image: 'Data',\n            twitter: 'Data'\n        },\n        IdentityJudgement: {\n            _enum: {\n                Unknown: 'Null',\n                FeePaid: 'Balance',\n                Reasonable: 'Null',\n                KnownGood: 'Null',\n                OutOfDate: 'Null',\n                LowQuality: 'Null',\n                Erroneous: 'Null'\n            }\n        },\n        RegistrationJudgement: '(RegistrarIndex, IdentityJudgement)',\n        RegistrationTo198: {\n            judgements: 'Vec<RegistrationJudgement>',\n            deposit: 'Balance',\n            info: 'IdentityInfoTo198'\n        },\n        Registration: {\n            _fallback: 'RegistrationTo198',\n            judgements: 'Vec<RegistrationJudgement>',\n            deposit: 'Balance',\n            info: 'IdentityInfo'\n        },\n        RegistrarIndex: 'u32',\n        RegistrarInfo: {\n            account: 'AccountId',\n            fee: 'Balance',\n            fields: 'IdentityFields'\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        AuthIndex: 'u32',\n        AuthoritySignature: 'Signature',\n        Heartbeat: {\n            blockNumber: 'BlockNumber',\n            networkState: 'OpaqueNetworkState',\n            sessionIndex: 'SessionIndex',\n            authorityIndex: 'AuthIndex',\n            validatorsLen: 'u32'\n        },\n        HeartbeatTo244: {\n            blockNumber: 'BlockNumber',\n            networkState: 'OpaqueNetworkState',\n            sessionIndex: 'SessionIndex',\n            authorityIndex: 'AuthIndex'\n        },\n        OpaqueMultiaddr: 'Opaque<Bytes>',\n        OpaquePeerId: 'Opaque<Bytes>',\n        OpaqueNetworkState: {\n            peerId: 'OpaquePeerId',\n            externalAddresses: 'Vec<OpaqueMultiaddr>'\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        CallIndex: '(u8, u8)',\n        LotteryConfig: {\n            price: 'Balance',\n            start: 'BlockNumber',\n            length: 'BlockNumber',\n            delay: 'BlockNumber',\n            repeat: 'bool'\n        }\n    }\n};\n","import { rpc } from './rpc.js';\nimport { runtime } from './runtime.js';\nexport default {\n    rpc,\n    runtime,\n    types: {\n        MmrBatchProof: {\n            leafIndices: 'Vec<MmrLeafIndex>',\n            leafCount: 'MmrNodeIndex',\n            items: 'Vec<Hash>'\n        },\n        MmrEncodableOpaqueLeaf: 'Bytes',\n        MmrError: {\n            _enum: ['Push', 'GetRoot', 'Commit', 'GenerateProof', 'Verify', 'LeafNotFound', ' PalletNotIncluded', 'InvalidLeafIndex']\n        },\n        MmrHash: 'Hash',\n        MmrLeafBatchProof: {\n            blockHash: 'BlockHash',\n            leaves: 'Bytes',\n            proof: 'Bytes'\n        },\n        MmrLeafIndex: 'u64',\n        MmrLeafProof: {\n            blockHash: 'BlockHash',\n            leaf: 'Bytes',\n            proof: 'Bytes'\n        },\n        MmrNodeIndex: 'u64',\n        MmrProof: {\n            leafIndex: 'MmrLeafIndex',\n            leafCount: 'MmrNodeIndex',\n            items: 'Vec<Hash>'\n        }\n    }\n};\n","export const rpc = {\n    generateProof: {\n        description: 'Generate MMR proof for the given block numbers.',\n        params: [\n            {\n                name: 'blockNumbers',\n                type: 'Vec<u64>'\n            },\n            {\n                isOptional: true,\n                name: 'bestKnownBlockNumber',\n                type: 'u64'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'MmrLeafBatchProof'\n    },\n    root: {\n        description: 'Get the MMR root hash for the current best block.',\n        params: [\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'MmrHash'\n    },\n    verifyProof: {\n        description: 'Verify an MMR proof',\n        params: [\n            {\n                name: 'proof',\n                type: 'MmrLeafBatchProof'\n            }\n        ],\n        type: 'bool'\n    },\n    verifyProofStateless: {\n        description: 'Verify an MMR proof statelessly given an mmr_root',\n        params: [\n            {\n                name: 'root',\n                type: 'MmrHash'\n            },\n            {\n                name: 'proof',\n                type: 'MmrLeafBatchProof'\n            }\n        ],\n        type: 'bool'\n    }\n};\n","const MMR_V2 = {\n    generate_proof: {\n        description: 'Generate MMR proof for the given block numbers.',\n        params: [\n            {\n                name: 'blockNumbers',\n                type: 'Vec<BlockNumber>'\n            },\n            {\n                name: 'bestKnownBlockNumber',\n                type: 'Option<BlockNumber>'\n            }\n        ],\n        type: 'Result<(Vec<MmrEncodableOpaqueLeaf>, MmrBatchProof), MmrError>'\n    },\n    root: {\n        description: 'Return the on-chain MMR root hash.',\n        params: [],\n        type: 'Result<Hash, MmrError>'\n    },\n    verify_proof: {\n        description: 'Verify MMR proof against on-chain MMR.',\n        params: [\n            {\n                name: 'leaves',\n                type: 'Vec<MmrEncodableOpaqueLeaf>'\n            },\n            {\n                name: 'proof',\n                type: 'MmrBatchProof'\n            }\n        ],\n        type: 'Result<(), MmrError>'\n    },\n    verify_proof_stateless: {\n        description: 'Verify MMR proof against given root hash.',\n        params: [\n            {\n                name: 'root',\n                type: 'Hash'\n            },\n            {\n                name: 'leaves',\n                type: 'Vec<MmrEncodableOpaqueLeaf>'\n            },\n            {\n                name: 'proof',\n                type: 'MmrBatchProof'\n            }\n        ],\n        type: 'Result<(), MmrError>'\n    }\n};\nconst MMR_V1 = {\n    generate_batch_proof: {\n        description: 'Generate MMR proof for a series of leaves under given indices.',\n        params: [\n            {\n                name: 'leafIndices',\n                type: 'Vec<MmrLeafIndex>'\n            }\n        ],\n        type: 'Result<(Vec<MmrEncodableOpaqueLeaf>, MmrBatchProof), MmrError>'\n    },\n    generate_proof: {\n        description: 'Generate MMR proof for a leaf under given index.',\n        params: [\n            {\n                name: 'leafIndex',\n                type: 'MmrLeafIndex'\n            }\n        ],\n        type: 'Result<(MmrEncodableOpaqueLeaf, MmrProof), MmrError>'\n    },\n    mmr_root: {\n        description: 'Return the on-chain MMR root hash.',\n        params: [],\n        type: 'Result<Hash, MmrError>'\n    },\n    verify_batch_proof: {\n        description: 'Verify MMR proof against on-chain MMR for a batch of leaves.',\n        params: [\n            {\n                name: 'leaves',\n                type: 'Vec<MmrEncodableOpaqueLeaf>'\n            },\n            {\n                name: 'proof',\n                type: 'MmrBatchProof'\n            }\n        ],\n        type: 'Result<(), MmrError>'\n    },\n    verify_batch_proof_stateless: {\n        description: 'Verify MMR proof against given root hash or a batch of leaves.',\n        params: [\n            {\n                name: 'root',\n                type: 'Hash'\n            },\n            {\n                name: 'leaves',\n                type: 'Vec<MmrEncodableOpaqueLeaf>'\n            },\n            {\n                name: 'proof',\n                type: 'MmrBatchProof'\n            }\n        ],\n        type: 'Result<(), MmrError>'\n    },\n    verify_proof: {\n        description: 'Verify MMR proof against on-chain MMR.',\n        params: [\n            {\n                name: 'leaf',\n                type: 'MmrEncodableOpaqueLeaf'\n            },\n            {\n                name: 'proof',\n                type: 'MmrProof'\n            }\n        ],\n        type: 'Result<(), MmrError>'\n    },\n    verify_proof_stateless: {\n        description: 'Verify MMR proof against given root hash.',\n        params: [\n            {\n                name: 'root',\n                type: 'Hash'\n            },\n            {\n                name: 'leaf',\n                type: 'MmrEncodableOpaqueLeaf'\n            },\n            {\n                name: 'proof',\n                type: 'MmrProof'\n            }\n        ],\n        type: 'Result<(), MmrError>'\n    }\n};\nexport const runtime = {\n    MmrApi: [\n        {\n            methods: MMR_V2,\n            version: 2\n        },\n        {\n            methods: MMR_V1,\n            version: 1\n        }\n    ]\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        NftCollectionId: 'u32',\n        NftItemId: 'u32'\n    }\n};\n","export const runtime = {\n    NftsApi: [\n        {\n            methods: {\n                attribute: {\n                    description: 'An attribute',\n                    params: [\n                        {\n                            name: 'collection',\n                            type: 'NftCollectionId'\n                        },\n                        {\n                            name: 'item',\n                            type: 'NftItemId'\n                        },\n                        {\n                            name: 'key',\n                            type: 'Bytes'\n                        }\n                    ],\n                    type: 'Option<Bytes>'\n                },\n                collection_attribute: {\n                    description: 'A collection attribute',\n                    params: [\n                        {\n                            name: 'collection',\n                            type: 'NftCollectionId'\n                        },\n                        {\n                            name: 'key',\n                            type: 'Bytes'\n                        }\n                    ],\n                    type: 'Option<Bytes>'\n                },\n                collection_owner: {\n                    description: 'A collection owner',\n                    params: [\n                        {\n                            name: 'collection',\n                            type: 'NftCollectionId'\n                        }\n                    ],\n                    type: 'Option<AccountId>'\n                },\n                custom_attribute: {\n                    description: 'A custom attribute',\n                    params: [\n                        {\n                            name: 'account',\n                            type: 'AccountId'\n                        },\n                        {\n                            name: 'collection',\n                            type: 'NftCollectionId'\n                        },\n                        {\n                            name: 'item',\n                            type: 'NftItemId'\n                        },\n                        {\n                            name: 'key',\n                            type: 'Bytes'\n                        }\n                    ],\n                    type: 'Option<Bytes>'\n                },\n                owner: {\n                    description: 'Collection owner',\n                    params: [\n                        {\n                            name: 'collection',\n                            type: 'NftCollectionId'\n                        },\n                        {\n                            name: 'item',\n                            type: 'NftItemId'\n                        }\n                    ],\n                    type: 'Option<AccountId>'\n                },\n                system_attribute: {\n                    description: 'System attribute',\n                    params: [\n                        {\n                            name: 'collection',\n                            type: 'NftCollectionId'\n                        },\n                        {\n                            name: 'item',\n                            type: 'NftItemId'\n                        },\n                        {\n                            name: 'key',\n                            type: 'Bytes'\n                        }\n                    ],\n                    type: 'Option<Bytes>'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        NpApiError: {\n            _enum: ['MemberNotFound', 'OverflowInPendingRewards']\n        },\n        NpPoolId: 'u32'\n    }\n};\n","export const runtime = {\n    NominationPoolsApi: [\n        {\n            methods: {\n                balance_to_points: {\n                    description: 'Returns the equivalent points of `new_funds` for a given pool.',\n                    params: [\n                        {\n                            name: 'poolId',\n                            type: 'NpPoolId'\n                        },\n                        {\n                            name: 'newFunds',\n                            type: 'Balance'\n                        }\n                    ],\n                    type: 'Balance'\n                },\n                pending_rewards: {\n                    description: 'Returns the pending rewards for the given member.',\n                    params: [\n                        {\n                            name: 'member',\n                            type: 'AccountId'\n                        }\n                    ],\n                    type: 'Balance'\n                },\n                points_to_balance: {\n                    description: 'Returns the equivalent balance of `points` for a given pool.',\n                    params: [\n                        {\n                            name: 'poolId',\n                            type: 'NpPoolId'\n                        },\n                        {\n                            name: 'points',\n                            type: 'Balance'\n                        }\n                    ],\n                    type: 'Balance'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","export default {\n    rpc: {},\n    types: {\n        DeferredOffenceOf: '(Vec<OffenceDetails>, Vec<Perbill>, SessionIndex)',\n        Kind: '[u8; 16]',\n        OffenceDetails: {\n            offender: 'Offender',\n            reporters: 'Vec<Reporter>'\n        },\n        Offender: 'IdentificationTuple',\n        OpaqueTimeSlot: 'Bytes',\n        ReportIdOf: 'Hash',\n        Reporter: 'AccountId'\n    }\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {}\n};\n","export const runtime = {\n    DifficultyApi: [\n        {\n            methods: {\n                difficulty: {\n                    description: 'Return the target difficulty of the next block.',\n                    params: [],\n                    // This is Difficulty in the original, however this is chain-specific\n                    type: 'Raw'\n                }\n            },\n            version: 1\n        }\n    ],\n    TimestampApi: [\n        {\n            methods: {\n                timestamp: {\n                    description: 'API necessary for timestamp-based difficulty adjustment algorithms.',\n                    params: [],\n                    type: 'Moment'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","export default {\n    rpc: {},\n    types: {\n        ProxyDefinition: {\n            delegate: 'AccountId',\n            proxyType: 'ProxyType',\n            delay: 'BlockNumber'\n        },\n        ProxyType: {\n            _enum: ['Any', 'NonTransfer', 'Governance', 'Staking']\n        },\n        ProxyAnnouncement: {\n            real: 'AccountId',\n            callHash: 'Hash',\n            height: 'BlockNumber'\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        ActiveRecovery: {\n            created: 'BlockNumber',\n            deposit: 'Balance',\n            friends: 'Vec<AccountId>'\n        },\n        RecoveryConfig: {\n            delayPeriod: 'BlockNumber',\n            deposit: 'Balance',\n            friends: 'Vec<AccountId>',\n            threshold: 'u16'\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        Period: '(BlockNumber, u32)',\n        Priority: 'u8',\n        SchedulePeriod: 'Period',\n        SchedulePriority: 'Priority',\n        Scheduled: {\n            maybeId: 'Option<Bytes>',\n            priority: 'SchedulePriority',\n            call: 'Call',\n            maybePeriodic: 'Option<SchedulePeriod>',\n            origin: 'PalletsOrigin'\n        },\n        ScheduledTo254: {\n            maybeId: 'Option<Bytes>',\n            priority: 'SchedulePriority',\n            call: 'Call',\n            maybePeriodic: 'Option<SchedulePeriod>'\n        },\n        TaskAddress: '(BlockNumber, u32)'\n    }\n};\n","import { runtime } from './runtime.js';\nconst keyTypes = {\n    // key for beefy\n    BeefyKey: '[u8; 33]',\n    // default to Substrate master defaults, 4 keys (polkadot master, 5 keys)\n    Keys: 'SessionKeys4',\n    SessionKeys1: '(AccountId)',\n    SessionKeys2: '(AccountId, AccountId)',\n    SessionKeys3: '(AccountId, AccountId, AccountId)',\n    SessionKeys4: '(AccountId, AccountId, AccountId, AccountId)',\n    SessionKeys5: '(AccountId, AccountId, AccountId, AccountId, AccountId)',\n    SessionKeys6: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)',\n    SessionKeys6B: '(AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)',\n    SessionKeys7: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)',\n    SessionKeys7B: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)',\n    SessionKeys8: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)',\n    SessionKeys8B: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)',\n    SessionKeys9: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)',\n    SessionKeys9B: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)',\n    SessionKeys10: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)',\n    SessionKeys10B: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)'\n};\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        ...keyTypes,\n        FullIdentification: 'Exposure',\n        IdentificationTuple: '(ValidatorId, FullIdentification)',\n        MembershipProof: {\n            session: 'SessionIndex',\n            trieNodes: 'Vec<Bytes>',\n            validatorCount: 'ValidatorCount'\n        },\n        SessionIndex: 'u32',\n        ValidatorCount: 'u32'\n    }\n};\n","export const runtime = {\n    SessionKeys: [\n        {\n            methods: {\n                decode_session_keys: {\n                    description: 'Decode the given public session keys.',\n                    params: [\n                        {\n                            name: 'encoded',\n                            type: 'Bytes'\n                        }\n                    ],\n                    type: 'Option<Vec<(Bytes, KeyTypeId)>>'\n                },\n                generate_session_keys: {\n                    description: 'Generate a set of session keys with optionally using the given seed.',\n                    params: [\n                        {\n                            name: 'seed',\n                            type: 'Option<Bytes>'\n                        }\n                    ],\n                    type: 'Bytes'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","export default {\n    rpc: {},\n    types: {\n        Bid: {\n            who: 'AccountId',\n            kind: 'BidKind',\n            value: 'Balance'\n        },\n        BidKind: {\n            _enum: {\n                Deposit: 'Balance',\n                Vouch: '(AccountId, Balance)'\n            }\n        },\n        // a society-specific Judgement (not the same as identity Judgement)\n        SocietyJudgement: {\n            _enum: ['Rebid', 'Reject', 'Approve']\n        },\n        // a society-specific Vote\n        SocietyVote: {\n            _enum: ['Skeptic', 'Reject', 'Approve']\n        },\n        StrikeCount: 'u32',\n        VouchingStatus: {\n            _enum: ['Vouching', 'Banned']\n        }\n    }\n};\n","import { runtime } from './runtime.js';\nconst deprecated = {\n    Points: 'u32',\n    EraPoints: {\n        total: 'Points',\n        individual: 'Vec<Points>'\n    }\n};\nconst phragmen = {\n    CompactAssignments: 'CompactAssignmentsWith16',\n    CompactAssignmentsWith16: {\n        votes1: 'Vec<(NominatorIndexCompact, ValidatorIndexCompact)>',\n        votes2: 'Vec<(NominatorIndexCompact, CompactScoreCompact, ValidatorIndexCompact)>',\n        votes3: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 2], ValidatorIndexCompact)>',\n        votes4: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 3], ValidatorIndexCompact)>',\n        votes5: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 4], ValidatorIndexCompact)>',\n        votes6: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 5], ValidatorIndexCompact)>',\n        votes7: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 6], ValidatorIndexCompact)>',\n        votes8: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 7], ValidatorIndexCompact)>',\n        votes9: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 8], ValidatorIndexCompact)>',\n        votes10: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 9], ValidatorIndexCompact)>',\n        votes11: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 10], ValidatorIndexCompact)>',\n        votes12: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 11], ValidatorIndexCompact)>',\n        votes13: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 12], ValidatorIndexCompact)>',\n        votes14: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 13], ValidatorIndexCompact)>',\n        votes15: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 14], ValidatorIndexCompact)>',\n        votes16: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 15], ValidatorIndexCompact)>'\n    },\n    CompactAssignmentsWith24: {\n        votes1: 'Vec<(NominatorIndexCompact, ValidatorIndexCompact)>',\n        votes2: 'Vec<(NominatorIndexCompact, CompactScoreCompact, ValidatorIndexCompact)>',\n        votes3: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 2], ValidatorIndexCompact)>',\n        votes4: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 3], ValidatorIndexCompact)>',\n        votes5: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 4], ValidatorIndexCompact)>',\n        votes6: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 5], ValidatorIndexCompact)>',\n        votes7: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 6], ValidatorIndexCompact)>',\n        votes8: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 7], ValidatorIndexCompact)>',\n        votes9: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 8], ValidatorIndexCompact)>',\n        votes10: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 9], ValidatorIndexCompact)>',\n        votes11: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 10], ValidatorIndexCompact)>',\n        votes12: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 11], ValidatorIndexCompact)>',\n        votes13: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 12], ValidatorIndexCompact)>',\n        votes14: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 13], ValidatorIndexCompact)>',\n        votes15: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 14], ValidatorIndexCompact)>',\n        votes16: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 15], ValidatorIndexCompact)>',\n        votes17: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 16], ValidatorIndexCompact)>',\n        votes18: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 17], ValidatorIndexCompact)>',\n        votes19: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 18], ValidatorIndexCompact)>',\n        votes20: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 19], ValidatorIndexCompact)>',\n        votes21: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 20], ValidatorIndexCompact)>',\n        votes22: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 21], ValidatorIndexCompact)>',\n        votes23: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 22], ValidatorIndexCompact)>',\n        votes24: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 23], ValidatorIndexCompact)>'\n    },\n    CompactAssignmentsTo265: 'CompactAssignmentsWith16',\n    CompactAssignmentsTo257: {\n        votes1: 'Vec<(NominatorIndex, [CompactScore; 0], ValidatorIndex)>',\n        votes2: 'Vec<(NominatorIndex, [CompactScore; 1], ValidatorIndex)>',\n        votes3: 'Vec<(NominatorIndex, [CompactScore; 2], ValidatorIndex)>',\n        votes4: 'Vec<(NominatorIndex, [CompactScore; 3], ValidatorIndex)>',\n        votes5: 'Vec<(NominatorIndex, [CompactScore; 4], ValidatorIndex)>',\n        votes6: 'Vec<(NominatorIndex, [CompactScore; 5], ValidatorIndex)>',\n        votes7: 'Vec<(NominatorIndex, [CompactScore; 6], ValidatorIndex)>',\n        votes8: 'Vec<(NominatorIndex, [CompactScore; 7], ValidatorIndex)>',\n        votes9: 'Vec<(NominatorIndex, [CompactScore; 8], ValidatorIndex)>',\n        votes10: 'Vec<(NominatorIndex, [CompactScore; 9], ValidatorIndex)>',\n        votes11: 'Vec<(NominatorIndex, [CompactScore; 10], ValidatorIndex)>',\n        votes12: 'Vec<(NominatorIndex, [CompactScore; 11], ValidatorIndex)>',\n        votes13: 'Vec<(NominatorIndex, [CompactScore; 12], ValidatorIndex)>',\n        votes14: 'Vec<(NominatorIndex, [CompactScore; 13], ValidatorIndex)>',\n        votes15: 'Vec<(NominatorIndex, [CompactScore; 14], ValidatorIndex)>',\n        votes16: 'Vec<(NominatorIndex, [CompactScore; 15], ValidatorIndex)>'\n    },\n    CompactScore: '(ValidatorIndex, OffchainAccuracy)',\n    CompactScoreCompact: '(ValidatorIndexCompact, OffchainAccuracyCompact)',\n    ElectionCompute: {\n        // in previous versions the last entry was \"AuthorityId\"\n        // (since no data attached, and it is via SCALE can rename)\n        _enum: ['OnChain', 'Signed', 'Unsigned']\n    },\n    ElectionPhase: {\n        _enum: {\n            Off: null,\n            Signed: null,\n            Unsigned: '(bool, BlockNumber)',\n            Emergency: null\n        }\n    },\n    ElectionResult: {\n        compute: 'ElectionCompute',\n        slotStake: 'Balance',\n        electedStashes: 'Vec<AccountId>',\n        exposures: 'Vec<(AccountId, Exposure)>'\n    },\n    ElectionScore: '[u128; 3]',\n    ElectionSize: {\n        validators: 'Compact<ValidatorIndex>',\n        nominators: 'Compact<NominatorIndex>'\n    },\n    ElectionStatus: {\n        _enum: {\n            Close: 'Null',\n            Open: 'BlockNumber'\n        }\n    },\n    ExtendedBalance: 'u128',\n    RawSolution: 'RawSolutionWith16',\n    RawSolutionWith16: {\n        compact: 'CompactAssignmentsWith16',\n        score: 'ElectionScore',\n        round: 'u32'\n    },\n    RawSolutionWith24: {\n        compact: 'CompactAssignmentsWith24',\n        score: 'ElectionScore',\n        round: 'u32'\n    },\n    RawSolutionTo265: 'RawSolutionWith16',\n    ReadySolution: {\n        supports: 'SolutionSupports',\n        score: 'ElectionScore',\n        compute: 'ElectionCompute'\n    },\n    RoundSnapshot: {\n        voters: 'Vec<(AccountId, VoteWeight, Vec<AccountId>)>',\n        targets: 'Vec<AccountId>'\n    },\n    SeatHolder: {\n        who: 'AccountId',\n        stake: 'Balance',\n        deposit: 'Balance'\n    },\n    SignedSubmission: {\n        _fallback: 'SignedSubmissionTo276',\n        who: 'AccountId',\n        deposit: 'Balance',\n        solution: 'RawSolution',\n        reward: 'Balance'\n    },\n    SignedSubmissionTo276: {\n        who: 'AccountId',\n        deposit: 'Balance',\n        solution: 'RawSolution'\n    },\n    SignedSubmissionOf: 'SignedSubmission',\n    SolutionOrSnapshotSize: {\n        voters: 'Compact<u32>',\n        targets: 'Compact<u32>'\n    },\n    SolutionSupport: {\n        total: 'ExtendedBalance',\n        voters: 'Vec<(AccountId, ExtendedBalance)>'\n    },\n    SolutionSupports: 'Vec<(AccountId, SolutionSupport)>',\n    Supports: 'SolutionSupports',\n    SubmissionIndicesOf: 'BTreeMap<ElectionScore, u32>',\n    Voter: {\n        votes: 'Vec<AccountId>',\n        stake: 'Balance',\n        deposit: 'Balance'\n    },\n    VoteWeight: 'u64'\n};\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        ...deprecated,\n        ...phragmen,\n        ActiveEraInfo: {\n            index: 'EraIndex',\n            start: 'Option<Moment>'\n        },\n        EraIndex: 'u32',\n        EraRewardPoints: {\n            total: 'RewardPoint',\n            individual: 'BTreeMap<AccountId, RewardPoint>'\n        },\n        EraRewards: {\n            total: 'u32',\n            rewards: 'Vec<u32>'\n        },\n        Exposure: {\n            total: 'Compact<Balance>',\n            own: 'Compact<Balance>',\n            others: 'Vec<IndividualExposure>'\n        },\n        Forcing: {\n            _enum: [\n                'NotForcing',\n                'ForceNew',\n                'ForceNone',\n                'ForceAlways'\n            ]\n        },\n        IndividualExposure: {\n            who: 'AccountId',\n            value: 'Compact<Balance>'\n        },\n        KeyType: 'AccountId',\n        MomentOf: 'Moment',\n        Nominations: {\n            targets: 'Vec<AccountId>',\n            submittedIn: 'EraIndex',\n            suppressed: 'bool'\n        },\n        NominatorIndex: 'u32',\n        NominatorIndexCompact: 'Compact<NominatorIndex>',\n        OffchainAccuracy: 'PerU16',\n        OffchainAccuracyCompact: 'Compact<OffchainAccuracy>',\n        PhragmenScore: '[u128; 3]',\n        Points: 'u32',\n        RewardDestination: {\n            _enum: {\n                Staked: 'Null',\n                Stash: 'Null',\n                Controller: 'Null',\n                Account: 'AccountId',\n                None: 'Null'\n            }\n        },\n        RewardPoint: 'u32',\n        SlashJournalEntry: {\n            who: 'AccountId',\n            amount: 'Balance',\n            ownSlash: 'Balance'\n        },\n        SlashingSpansTo204: {\n            spanIndex: 'SpanIndex',\n            lastStart: 'EraIndex',\n            prior: 'Vec<EraIndex>'\n        },\n        SlashingSpans: {\n            spanIndex: 'SpanIndex',\n            lastStart: 'EraIndex',\n            lastNonzeroSlash: 'EraIndex',\n            prior: 'Vec<EraIndex>'\n        },\n        SpanIndex: 'u32',\n        SpanRecord: {\n            slashed: 'Balance',\n            paidOut: 'Balance'\n        },\n        StakingLedgerTo223: {\n            stash: 'AccountId',\n            total: 'Compact<Balance>',\n            active: 'Compact<Balance>',\n            unlocking: 'Vec<UnlockChunk>'\n        },\n        StakingLedgerTo240: {\n            _fallback: 'StakingLedgerTo223',\n            stash: 'AccountId',\n            total: 'Compact<Balance>',\n            active: 'Compact<Balance>',\n            unlocking: 'Vec<UnlockChunk>',\n            lastReward: 'Option<EraIndex>'\n        },\n        StakingLedger: {\n            stash: 'AccountId',\n            total: 'Compact<Balance>',\n            active: 'Compact<Balance>',\n            unlocking: 'Vec<UnlockChunk>',\n            claimedRewards: 'Vec<EraIndex>'\n        },\n        UnappliedSlashOther: '(AccountId, Balance)',\n        UnappliedSlash: {\n            validator: 'AccountId',\n            own: 'Balance',\n            others: 'Vec<UnappliedSlashOther>',\n            reporters: 'Vec<AccountId>',\n            payout: 'Balance'\n        },\n        UnlockChunk: {\n            value: 'Compact<Balance>',\n            era: 'Compact<BlockNumber>'\n        },\n        ValidatorIndex: 'u16',\n        ValidatorIndexCompact: 'Compact<ValidatorIndex>',\n        ValidatorPrefs: 'ValidatorPrefsWithBlocked',\n        ValidatorPrefsWithCommission: {\n            commission: 'Compact<Perbill>'\n        },\n        ValidatorPrefsWithBlocked: {\n            commission: 'Compact<Perbill>',\n            blocked: 'bool'\n        },\n        ValidatorPrefsTo196: {\n            validatorPayment: 'Compact<Balance>'\n        },\n        ValidatorPrefsTo145: {\n            unstakeThreshold: 'Compact<u32>',\n            validatorPayment: 'Compact<Balance>'\n        }\n    }\n};\n","export const runtime = {\n    StakingApi: [\n        {\n            methods: {\n                nominations_quota: {\n                    description: 'Returns the nominations quota for a nominator with a given balance.',\n                    params: [\n                        {\n                            name: 'balance',\n                            type: 'Balance'\n                        }\n                    ],\n                    type: 'u32'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","export default {\n    rpc: {},\n    types: {\n        WeightToFeeCoefficient: {\n            coeffInteger: 'Balance',\n            coeffFrac: 'Perbill',\n            negative: 'bool',\n            degree: 'u8'\n        }\n    }\n};\n","import { rpc } from './rpc.js';\nexport default {\n    rpc,\n    types: {}\n};\n","export const rpc = {\n    genSyncSpec: {\n        description: 'Returns the json-serialized chainspec running the node, with a sync state.',\n        endpoint: 'sync_state_genSyncSpec',\n        params: [\n            {\n                name: 'raw',\n                type: 'bool'\n            }\n        ],\n        type: 'Json'\n    }\n};\n","import { rpc } from './rpc.js';\nimport { runtime } from './runtime.js';\nexport default {\n    rpc,\n    runtime,\n    types: {\n        AccountInfo: 'AccountInfoWithTripleRefCount',\n        AccountInfoWithRefCountU8: {\n            nonce: 'Index',\n            refcount: 'u8',\n            data: 'AccountData'\n        },\n        AccountInfoWithRefCount: {\n            _fallback: 'AccountInfoWithRefCountU8',\n            nonce: 'Index',\n            refcount: 'RefCount',\n            data: 'AccountData'\n        },\n        AccountInfoWithDualRefCount: {\n            _fallback: 'AccountInfoWithRefCount',\n            nonce: 'Index',\n            consumers: 'RefCount',\n            providers: 'RefCount',\n            data: 'AccountData'\n        },\n        // original naming\n        AccountInfoWithProviders: 'AccountInfoWithDualRefCount',\n        AccountInfoWithTripleRefCount: {\n            _fallback: 'AccountInfoWithDualRefCount',\n            nonce: 'Index',\n            consumers: 'RefCount',\n            providers: 'RefCount',\n            sufficients: 'RefCount',\n            data: 'AccountData'\n        },\n        ApplyExtrinsicResult: 'Result<DispatchOutcome, TransactionValidityError>',\n        ApplyExtrinsicResultPre6: 'Result<DispatchOutcomePre6, TransactionValidityError>',\n        ArithmeticError: {\n            _enum: [\n                'Underflow',\n                'Overflow',\n                'DivisionByZero'\n            ]\n        },\n        BlockLength: {\n            max: 'PerDispatchClassU32'\n        },\n        BlockWeights: {\n            baseBlock: 'Weight',\n            maxBlock: 'Weight',\n            perClass: 'PerDispatchClassWeightsPerClass'\n        },\n        ChainProperties: 'GenericChainProperties',\n        ChainType: {\n            _enum: {\n                Development: 'Null',\n                Local: 'Null',\n                Live: 'Null',\n                Custom: 'Text'\n            }\n        },\n        ConsumedWeight: 'PerDispatchClassWeight',\n        DigestOf: 'Digest',\n        DispatchClass: {\n            _enum: ['Normal', 'Operational', 'Mandatory']\n        },\n        DispatchError: {\n            _enum: {\n                Other: 'Null',\n                CannotLookup: 'Null',\n                BadOrigin: 'Null',\n                Module: 'DispatchErrorModule',\n                ConsumerRemaining: 'Null',\n                NoProviders: 'Null',\n                TooManyConsumers: 'Null',\n                Token: 'TokenError',\n                Arithmetic: 'ArithmeticError',\n                Transactional: 'TransactionalError',\n                Exhausted: 'Null',\n                Corruption: 'Null',\n                Unavailable: 'Null'\n            }\n        },\n        DispatchErrorPre6: {\n            _enum: {\n                Other: 'Null',\n                CannotLookup: 'Null',\n                BadOrigin: 'Null',\n                Module: 'DispatchErrorModulePre6',\n                ConsumerRemaining: 'Null',\n                NoProviders: 'Null',\n                TooManyConsumers: 'Null',\n                Token: 'TokenError',\n                Arithmetic: 'ArithmeticError',\n                Transactional: 'TransactionalError'\n            }\n        },\n        DispatchErrorPre6First: {\n            // The enum was modified mid-flight, affecting asset chains -\n            // https://github.com/paritytech/substrate/pull/10382/files#diff-e4e016b33a82268b6208dc974eea841bad47597865a749fee2f937eb6fdf67b4R498\n            _enum: {\n                Other: 'Null',\n                CannotLookup: 'Null',\n                BadOrigin: 'Null',\n                Module: 'DispatchErrorModulePre6',\n                ConsumerRemaining: 'Null',\n                NoProviders: 'Null',\n                Token: 'TokenError',\n                Arithmetic: 'ArithmeticError',\n                Transactional: 'TransactionalError'\n            }\n        },\n        DispatchErrorModuleU8: {\n            index: 'u8',\n            error: 'u8'\n        },\n        DispatchErrorModuleU8a: {\n            index: 'u8',\n            error: '[u8; 4]'\n        },\n        DispatchErrorModule: 'DispatchErrorModuleU8a',\n        DispatchErrorModulePre6: 'DispatchErrorModuleU8',\n        DispatchErrorTo198: {\n            module: 'Option<u8>',\n            error: 'u8'\n        },\n        DispatchInfo: {\n            weight: 'Weight',\n            class: 'DispatchClass',\n            paysFee: 'Pays'\n        },\n        DispatchInfoTo190: {\n            weight: 'Weight',\n            class: 'DispatchClass'\n        },\n        DispatchInfoTo244: {\n            weight: 'Weight',\n            class: 'DispatchClass',\n            paysFee: 'bool'\n        },\n        DispatchOutcome: 'Result<(), DispatchError>',\n        DispatchOutcomePre6: 'Result<(), DispatchErrorPre6>',\n        DispatchResult: 'Result<(), DispatchError>',\n        DispatchResultOf: 'DispatchResult',\n        DispatchResultTo198: 'Result<(), Text>',\n        Event: 'GenericEvent',\n        EventId: '[u8; 2]',\n        EventIndex: 'u32',\n        EventRecord: {\n            phase: 'Phase',\n            event: 'Event',\n            topics: 'Vec<Hash>'\n        },\n        Health: {\n            peers: 'u64',\n            isSyncing: 'bool',\n            shouldHavePeers: 'bool'\n        },\n        InvalidTransaction: {\n            _enum: {\n                Call: 'Null',\n                Payment: 'Null',\n                Future: 'Null',\n                Stale: 'Null',\n                BadProof: 'Null',\n                AncientBirthBlock: 'Null',\n                ExhaustsResources: 'Null',\n                Custom: 'u8',\n                BadMandatory: 'Null',\n                MandatoryDispatch: 'Null',\n                BadSigner: 'Null'\n            }\n        },\n        Key: 'Bytes',\n        LastRuntimeUpgradeInfo: {\n            specVersion: 'Compact<u32>',\n            specName: 'Text'\n        },\n        NetworkState: {\n            peerId: 'Text',\n            listenedAddresses: 'Vec<Text>',\n            externalAddresses: 'Vec<Text>',\n            connectedPeers: 'HashMap<Text, Peer>',\n            notConnectedPeers: 'HashMap<Text, NotConnectedPeer>',\n            averageDownloadPerSec: 'u64',\n            averageUploadPerSec: 'u64',\n            peerset: 'NetworkStatePeerset'\n        },\n        NetworkStatePeerset: {\n            messageQueue: 'u64',\n            nodes: 'HashMap<Text, NetworkStatePeersetInfo>'\n        },\n        NetworkStatePeersetInfo: {\n            connected: 'bool',\n            reputation: 'i32'\n        },\n        NodeRole: {\n            _enum: {\n                Full: 'Null',\n                LightClient: 'Null',\n                Authority: 'Null',\n                UnknownRole: 'u8'\n            }\n        },\n        NotConnectedPeer: {\n            knownAddresses: 'Vec<Text>',\n            latestPingTime: 'Option<PeerPing>',\n            versionString: 'Option<Text>'\n        },\n        Peer: {\n            enabled: 'bool',\n            endpoint: 'PeerEndpoint',\n            knownAddresses: 'Vec<Text>',\n            latestPingTime: 'PeerPing',\n            open: 'bool',\n            versionString: 'Text'\n        },\n        PeerEndpoint: {\n            listening: 'PeerEndpointAddr'\n        },\n        PeerEndpointAddr: {\n            _alias: {\n                localAddr: 'local_addr',\n                sendBackAddr: 'send_back_addr'\n            },\n            localAddr: 'Text',\n            sendBackAddr: 'Text'\n        },\n        PeerPing: {\n            nanos: 'u64',\n            secs: 'u64'\n        },\n        PeerInfo: {\n            peerId: 'Text',\n            roles: 'Text',\n            protocolVersion: 'u32',\n            bestHash: 'Hash',\n            bestNumber: 'BlockNumber'\n        },\n        PerDispatchClassU32: {\n            normal: 'u32',\n            operational: 'u32',\n            mandatory: 'u32'\n        },\n        PerDispatchClassWeight: {\n            normal: 'Weight',\n            operational: 'Weight',\n            mandatory: 'Weight'\n        },\n        PerDispatchClassWeightsPerClass: {\n            normal: 'WeightPerClass',\n            operational: 'WeightPerClass',\n            mandatory: 'WeightPerClass'\n        },\n        Phase: {\n            _enum: {\n                ApplyExtrinsic: 'u32',\n                Finalization: 'Null',\n                Initialization: 'Null'\n            }\n        },\n        RawOrigin: {\n            _enum: {\n                Root: 'Null',\n                Signed: 'AccountId',\n                None: 'Null'\n            }\n        },\n        RefCount: 'u32',\n        RefCountTo259: 'u8',\n        SyncState: {\n            startingBlock: 'BlockNumber',\n            currentBlock: 'BlockNumber',\n            highestBlock: 'Option<BlockNumber>'\n        },\n        SystemOrigin: 'RawOrigin',\n        TokenError: {\n            _enum: [\n                'NoFunds',\n                'WouldDie',\n                'BelowMinimum',\n                'CannotCreate',\n                'UnknownAsset',\n                'Frozen',\n                'Unsupported',\n                // these are dropped, but still in older versions\n                // (if this adjusts, will need to take a re-look)\n                'Underflow',\n                'Overflow'\n            ]\n        },\n        TransactionValidityError: {\n            _enum: {\n                Invalid: 'InvalidTransaction',\n                Unknown: 'UnknownTransaction'\n            }\n        },\n        TransactionalError: {\n            _enum: [\n                'LimitReached',\n                'NoLayer'\n            ]\n        },\n        UnknownTransaction: {\n            _enum: {\n                CannotLookup: 'Null',\n                NoUnsignedValidator: 'Null',\n                Custom: 'u8'\n            }\n        },\n        WeightPerClass: {\n            baseExtrinsic: 'Weight',\n            maxExtrinsic: 'Option<Weight>',\n            maxTotal: 'Option<Weight>',\n            reserved: 'Option<Weight>'\n        }\n    }\n};\n","export const rpc = {\n    accountNextIndex: {\n        alias: ['account_nextIndex'],\n        description: 'Retrieves the next accountIndex as available on the node',\n        params: [\n            {\n                name: 'accountId',\n                type: 'AccountId'\n            }\n        ],\n        type: 'Index'\n    },\n    addLogFilter: {\n        description: 'Adds the supplied directives to the current log filter',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'directives',\n                type: 'Text'\n            }\n        ],\n        type: 'Null'\n    },\n    addReservedPeer: {\n        description: 'Adds a reserved peer',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'peer',\n                type: 'Text'\n            }\n        ],\n        type: 'Text'\n    },\n    chain: {\n        description: 'Retrieves the chain',\n        params: [],\n        type: 'Text'\n    },\n    chainType: {\n        description: 'Retrieves the chain type',\n        params: [],\n        type: 'ChainType'\n    },\n    dryRun: {\n        alias: ['system_dryRunAt'],\n        description: 'Dry run an extrinsic at a given block',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'extrinsic',\n                type: 'Bytes'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'ApplyExtrinsicResult'\n    },\n    health: {\n        description: 'Return health status of the node',\n        noErrorLog: true,\n        params: [],\n        type: 'Health'\n    },\n    localListenAddresses: {\n        description: 'The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to addReservedPeer or as a bootnode address for example',\n        params: [],\n        type: 'Vec<Text>'\n    },\n    localPeerId: {\n        description: 'Returns the base58-encoded PeerId of the node',\n        params: [],\n        type: 'Text'\n    },\n    name: {\n        description: 'Retrieves the node name',\n        params: [],\n        type: 'Text'\n    },\n    networkState: {\n        alias: ['system_unstable_networkState'],\n        description: 'Returns current state of the network',\n        isUnsafe: true,\n        params: [],\n        type: 'NetworkState'\n    },\n    nodeRoles: {\n        description: 'Returns the roles the node is running as',\n        params: [],\n        type: 'Vec<NodeRole>'\n    },\n    peers: {\n        description: 'Returns the currently connected peers',\n        isUnsafe: true,\n        params: [],\n        type: 'Vec<PeerInfo>'\n    },\n    properties: {\n        description: 'Get a custom set of properties as a JSON object, defined in the chain spec',\n        params: [],\n        type: 'ChainProperties'\n    },\n    removeReservedPeer: {\n        description: 'Remove a reserved peer',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'peerId',\n                type: 'Text'\n            }\n        ],\n        type: 'Text'\n    },\n    reservedPeers: {\n        description: 'Returns the list of reserved peers',\n        params: [],\n        type: 'Vec<Text>'\n    },\n    resetLogFilter: {\n        description: 'Resets the log filter to Substrate defaults',\n        isUnsafe: true,\n        params: [],\n        type: 'Null'\n    },\n    syncState: {\n        description: 'Returns the state of the syncing of the node',\n        params: [],\n        type: 'SyncState'\n    },\n    version: {\n        description: 'Retrieves the version of the node',\n        params: [],\n        type: 'Text'\n    }\n};\n","export const runtime = {\n    AccountNonceApi: [\n        {\n            methods: {\n                account_nonce: {\n                    description: 'The API to query account nonce (aka transaction index)',\n                    params: [\n                        {\n                            name: 'accountId',\n                            type: 'AccountId'\n                        }\n                    ],\n                    type: 'Index'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","export default {\n    rpc: {},\n    types: {\n        Bounty: {\n            proposer: 'AccountId',\n            value: 'Balance',\n            fee: 'Balance',\n            curatorDeposit: 'Balance',\n            bond: 'Balance',\n            status: 'BountyStatus'\n        },\n        BountyIndex: 'u32',\n        BountyStatus: {\n            _enum: {\n                Proposed: 'Null',\n                Approved: 'Null',\n                Funded: 'Null',\n                CuratorProposed: 'BountyStatusCuratorProposed',\n                Active: 'BountyStatusActive',\n                PendingPayout: 'BountyStatusPendingPayout'\n            }\n        },\n        BountyStatusActive: {\n            curator: 'AccountId',\n            updateDue: 'BlockNumber'\n        },\n        BountyStatusCuratorProposed: {\n            curator: 'AccountId'\n        },\n        BountyStatusPendingPayout: {\n            curator: 'AccountId',\n            beneficiary: 'AccountId',\n            unlockAt: 'BlockNumber'\n        },\n        OpenTip: {\n            reason: 'Hash',\n            who: 'AccountId',\n            finder: 'AccountId',\n            deposit: 'Balance',\n            closes: 'Option<BlockNumber>',\n            tips: 'Vec<OpenTipTip>',\n            findersFee: 'bool'\n        },\n        OpenTipTo225: {\n            reason: 'Hash',\n            who: 'AccountId',\n            finder: 'Option<OpenTipFinderTo225>',\n            closes: 'Option<BlockNumber>',\n            tips: 'Vec<OpenTipTip>'\n        },\n        OpenTipFinderTo225: '(AccountId, Balance)',\n        OpenTipTip: '(AccountId, Balance)',\n        TreasuryProposal: {\n            proposer: 'AccountId',\n            value: 'Balance',\n            beneficiary: 'AccountId',\n            bond: 'Balance'\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        Multiplier: 'Fixed128'\n    }\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        TransactionSource: {\n            _enum: ['InBlock', 'Local', 'External']\n        },\n        TransactionValidity: 'Result<ValidTransaction, TransactionValidityError>',\n        ValidTransaction: {\n            priority: 'TransactionPriority',\n            requires: 'Vec<TransactionTag>',\n            provides: 'Vec<TransactionTag>',\n            longevity: 'TransactionLongevity',\n            propagate: 'bool'\n        }\n    }\n};\n","export const runtime = {\n    TaggedTransactionQueue: [\n        {\n            methods: {\n                validate_transaction: {\n                    description: 'Validate the transaction.',\n                    params: [\n                        {\n                            name: 'source',\n                            type: 'TransactionSource'\n                        },\n                        {\n                            name: 'tx',\n                            type: 'Extrinsic'\n                        },\n                        {\n                            name: 'blockHash',\n                            type: 'BlockHash'\n                        }\n                    ],\n                    type: 'TransactionValidity'\n                }\n            },\n            version: 3\n        },\n        {\n            methods: {\n                validate_transaction: {\n                    description: 'Validate the transaction.',\n                    params: [\n                        {\n                            name: 'source',\n                            type: 'TransactionSource'\n                        },\n                        {\n                            name: 'tx',\n                            type: 'Extrinsic'\n                        }\n                    ],\n                    type: 'TransactionValidity'\n                }\n            },\n            version: 2\n        },\n        {\n            methods: {\n                validate_transaction: {\n                    description: 'Validate the transaction.',\n                    params: [\n                        {\n                            name: 'tx',\n                            type: 'Extrinsic'\n                        }\n                    ],\n                    type: 'TransactionValidity'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","export default {\n    rpc: {},\n    types: {\n        ClassId: 'u32',\n        InstanceId: 'u32',\n        DepositBalance: 'Balance',\n        DepositBalanceOf: 'Balance',\n        ClassDetails: {\n            owner: 'AccountId',\n            issuer: 'AccountId',\n            admin: 'AccountId',\n            freezer: 'AccountId',\n            totalDeposit: 'DepositBalance',\n            freeHolding: 'bool',\n            instances: 'u32',\n            instanceMetadatas: 'u32',\n            attributes: 'u32',\n            isFrozen: 'bool'\n        },\n        DestroyWitness: {\n            instances: 'Compact<u32>',\n            instanceMetadatas: 'Compact<u32>',\n            attributes: 'Compact<u32>'\n        },\n        InstanceDetails: {\n            owner: 'AccountId',\n            approved: 'Option<AccountId>',\n            isFrozen: 'bool',\n            deposit: 'DepositBalance'\n        },\n        ClassMetadata: {\n            deposit: 'DepositBalance',\n            data: 'Vec<u8>',\n            isFrozen: 'bool'\n        },\n        InstanceMetadata: {\n            deposit: 'DepositBalance',\n            data: 'Vec<u8>',\n            isFrozen: 'bool'\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        Multisig: {\n            when: 'Timepoint',\n            deposit: 'Balance',\n            depositor: 'AccountId',\n            approvals: 'Vec<AccountId>'\n        },\n        Timepoint: {\n            height: 'BlockNumber',\n            index: 'u32'\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        VestingInfo: {\n            locked: 'Balance',\n            perBlock: 'Balance',\n            startingBlock: 'BlockNumber'\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        BlockAttestations: {\n            receipt: 'CandidateReceipt',\n            valid: 'Vec<AccountId>',\n            invalid: 'Vec<AccountId>'\n        },\n        IncludedBlocks: {\n            actualNumber: 'BlockNumber',\n            session: 'SessionIndex',\n            randomSeed: 'H256',\n            activeParachains: 'Vec<ParaId>',\n            paraBlocks: 'Vec<Hash>'\n        },\n        MoreAttestations: {}\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        BridgedBlockHash: 'H256',\n        BridgedBlockNumber: 'BlockNumber',\n        BridgedHeader: 'Header',\n        BridgeMessageId: '(LaneId, MessageNonce)',\n        CallOrigin: {\n            _enum: {\n                SourceRoot: 'Null',\n                TargetAccount: '(AccountId, MultiSigner, MultiSignature)',\n                SourceAccount: 'AccountId'\n            }\n        },\n        ChainId: '[u8; 4]',\n        DeliveredMessages: {\n            begin: 'MessageNonce',\n            end: 'MessageNonce',\n            // pub type DispatchResultsBitVec = BitVec<Msb0, u8>;\n            dispatchResults: 'BitVec'\n        },\n        DispatchFeePayment: {\n            _enum: ['AtSourceChain', 'AtTargetChain']\n        },\n        InboundLaneData: {\n            relayers: 'Vec<UnrewardedRelayer>',\n            lastConfirmedNonce: 'MessageNonce'\n        },\n        InboundRelayer: 'AccountId',\n        InitializationData: {\n            header: 'Header',\n            authorityList: 'AuthorityList',\n            setId: 'SetId',\n            isHalted: 'bool'\n        },\n        LaneId: '[u8; 4]',\n        MessageData: {\n            payload: 'Bytes',\n            fee: 'Balance'\n        },\n        MessagesDeliveryProofOf: {\n            bridgedHeaderHash: 'BlockHash',\n            storageProof: 'Vec<Bytes>',\n            lane: 'LaneId'\n        },\n        MessageKey: {\n            laneId: 'LaneId',\n            nonce: 'MessageNonce'\n        },\n        MessageNonce: 'u64',\n        MessagesProofOf: {\n            bridgedHeaderHash: 'BridgedBlockHash',\n            storageProof: 'Vec<Bytes>',\n            lane: 'LaneId',\n            noncesStart: 'MessageNonce',\n            noncesEnd: 'MessageNonce'\n        },\n        OperatingMode: {\n            _enum: ['Normal', 'RejectingOutboundMessages', 'Halted']\n        },\n        OutboundLaneData: {\n            oldestUnprunedNonce: 'MessageNonce',\n            latestReceivedNonce: 'MessageNonce',\n            latestGeneratedNonce: 'MessageNonce'\n        },\n        OutboundMessageFee: 'Balance',\n        OutboundPayload: {\n            specVersion: 'u32',\n            weight: 'Weight',\n            origin: 'CallOrigin',\n            dispatchFeePayment: 'DispatchFeePayment',\n            call: 'Bytes'\n        },\n        Parameter: 'Null',\n        RelayerId: 'AccountId',\n        UnrewardedRelayer: {\n            relayer: 'RelayerId',\n            messages: 'DeliveredMessages'\n        },\n        UnrewardedRelayersState: {\n            unrewardedRelayer_Entries: 'MessageNonce',\n            messagesInOldestEntry: 'MessageNonce',\n            totalMessages: 'MessageNonce'\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        StatementKind: {\n            _enum: ['Regular', 'Saft']\n        }\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        FundIndex: 'u32',\n        LastContribution: {\n            _enum: {\n                Never: 'Null',\n                PreEnding: 'u32',\n                Ending: 'BlockNumber'\n            }\n        },\n        FundInfo: {\n            depositor: 'AccountId',\n            verifier: 'Option<MultiSigner>',\n            deposit: 'Balance',\n            raised: 'Balance',\n            end: 'BlockNumber',\n            cap: 'Balance',\n            lastContribution: 'LastContribution',\n            firstPeriod: 'LeasePeriod',\n            lastPeriod: 'LeasePeriod',\n            trieIndex: 'TrieIndex'\n        },\n        TrieIndex: 'u32'\n    }\n};\n","import { runtime } from './runtime.js';\nconst dmpQueue = {\n    CollationInfo: {\n        upwardMessages: 'Vec<UpwardMessage>',\n        horizontalMessages: 'Vec<OutboundHrmpMessage>',\n        newValidationCode: 'Option<ValidationCode>',\n        processedDownwardMessages: 'u32',\n        hrmpWatermark: 'RelayBlockNumber',\n        headData: 'HeadData'\n    },\n    CollationInfoV1: {\n        upwardMessages: 'Vec<UpwardMessage>',\n        horizontalMessages: 'Vec<OutboundHrmpMessage>',\n        newValidationCode: 'Option<ValidationCode>',\n        processedDownwardMessages: 'u32',\n        hrmpWatermark: 'RelayBlockNumber'\n    },\n    ConfigData: {\n        maxIndividual: 'Weight'\n    },\n    MessageId: '[u8; 32]',\n    OverweightIndex: 'u64',\n    PageCounter: 'u32',\n    PageIndexData: {\n        beginUsed: 'PageCounter',\n        endUsed: 'PageCounter',\n        overweightCount: 'OverweightIndex'\n    }\n};\nexport default {\n    rpc: {},\n    runtime,\n    types: dmpQueue\n};\n","export const runtime = {\n    CollectCollationInfo: [\n        {\n            methods: {\n                collect_collation_info: {\n                    description: 'Collect information about a collation.',\n                    params: [\n                        {\n                            name: 'header',\n                            type: 'Header'\n                        }\n                    ],\n                    type: 'CollationInfo'\n                }\n            },\n            version: 2\n        },\n        {\n            methods: {\n                collect_collation_info: {\n                    description: 'Collect information about a collation.',\n                    params: [],\n                    type: 'CollationInfoV1'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","const finalityV1 = {\n    methods: {\n        best_finalized: {\n            description: 'Returns number and hash of the best finalized header known to the bridge module.',\n            params: [],\n            type: '(BlockNumber, Hash)'\n        }\n    },\n    version: 1\n};\nexport const runtime = {\n    KusamaFinalityApi: [finalityV1],\n    PolkadotFinalityApi: [finalityV1],\n    RococoFinalityApi: [finalityV1],\n    WestendFinalityApi: [finalityV1]\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {}\n};\n","const PH_V1_TO_V2 = {\n    assumed_validation_data: {\n        description: 'Returns the persisted validation data for the given `ParaId` along with the corresponding validation code hash.',\n        params: [\n            {\n                name: 'paraId',\n                type: 'ParaId'\n            },\n            {\n                name: 'hash',\n                type: 'Hash'\n            }\n        ],\n        type: 'Option<(PersistedValidationData, ValidationCodeHash)>'\n    },\n    availability_cores: {\n        description: 'Yields information on all availability cores as relevant to the child block.',\n        params: [],\n        type: 'Vec<CoreState>'\n    },\n    candidate_events: {\n        description: 'Get a vector of events concerning candidates that occurred within a block.',\n        params: [],\n        type: 'Vec<CandidateEvent>'\n    },\n    candidate_pending_availability: {\n        description: 'Get the receipt of a candidate pending availability.',\n        params: [\n            {\n                name: 'paraId',\n                type: 'ParaId'\n            }\n        ],\n        type: 'Option<CommittedCandidateReceipt>'\n    },\n    check_validation_outputs: {\n        description: 'Checks if the given validation outputs pass the acceptance criteria.',\n        params: [\n            {\n                name: 'paraId',\n                type: 'ParaId'\n            },\n            {\n                name: 'outputs',\n                type: 'CandidateCommitments'\n            }\n        ],\n        type: 'bool'\n    },\n    dmq_contents: {\n        description: 'Get all the pending inbound messages in the downward message queue for a para.',\n        params: [\n            {\n                name: 'paraId',\n                type: 'ParaId'\n            }\n        ],\n        type: 'Vec<InboundDownwardMessage>'\n    },\n    inbound_hrmp_channels_contents: {\n        description: 'Get the contents of all channels addressed to the given recipient.',\n        params: [\n            {\n                name: 'paraId',\n                type: 'ParaId'\n            }\n        ],\n        type: 'Vec<InboundHrmpMessage>'\n    },\n    on_chain_votes: {\n        description: 'Scrape dispute relevant from on-chain, backing votes and resolved disputes.',\n        params: [],\n        type: 'Option<ScrapedOnChainVotes>'\n    },\n    persisted_validation_data: {\n        description: 'Yields the persisted validation data for the given `ParaId` along with an assumption that should be used if the para currently occupies a core.',\n        params: [\n            {\n                name: 'paraId',\n                type: 'ParaId'\n            },\n            {\n                name: 'assumption',\n                type: 'OccupiedCoreAssumption'\n            }\n        ],\n        type: 'Option<PersistedValidationData>'\n    },\n    session_index_for_child: {\n        description: 'Returns the session index expected at a child of the block.',\n        params: [],\n        type: 'SessionIndex'\n    },\n    validation_code: {\n        description: 'Fetch the validation code used by a para, making the given `OccupiedCoreAssumption`.',\n        params: [\n            {\n                name: 'paraId',\n                type: 'ParaId'\n            },\n            {\n                name: 'assumption',\n                type: 'OccupiedCoreAssumption'\n            }\n        ],\n        type: 'ValidationCode'\n    },\n    validation_code_by_hash: {\n        description: 'Get the validation code from its hash.',\n        params: [\n            {\n                name: 'hash',\n                type: 'ValidationCodeHash'\n            }\n        ],\n        type: 'Option<ValidationCode>'\n    },\n    validator_groups: {\n        description: 'Returns the validator groups and rotation info localized based on the hypothetical child of a block whose state  this is invoked on',\n        params: [],\n        type: '(Vec<Vec<ParaValidatorIndex>>, GroupRotationInfo)'\n    },\n    validators: {\n        description: 'Get the current validators.',\n        params: [],\n        type: 'Vec<ValidatorId>'\n    }\n};\nconst PH_V2_TO_V3 = {\n    pvfs_require_precheck: {\n        description: 'Returns code hashes of PVFs that require pre-checking by validators in the active set.',\n        params: [],\n        type: 'Vec<ValidationCodeHash>'\n    },\n    session_info: {\n        description: 'Get the session info for the given session, if stored.',\n        params: [\n            {\n                name: 'index',\n                type: 'SessionIndex'\n            }\n        ],\n        type: 'Option<SessionInfo>'\n    },\n    submit_pvf_check_statement: {\n        description: 'Submits a PVF pre-checking statement into the transaction pool.',\n        params: [\n            {\n                name: 'stmt',\n                type: 'PvfCheckStatement'\n            },\n            {\n                name: 'signature',\n                type: 'ValidatorSignature'\n            }\n        ],\n        type: 'Null'\n    },\n    validation_code_hash: {\n        description: 'Fetch the hash of the validation code used by a para, making the given `OccupiedCoreAssumption`.',\n        params: [\n            {\n                name: 'paraId',\n                type: 'ParaId'\n            },\n            {\n                name: 'assumption',\n                type: 'OccupiedCoreAssumption'\n            }\n        ],\n        type: 'Option<ValidationCodeHash>'\n    }\n};\nconst PH_V3 = {\n    disputes: {\n        description: 'Returns all onchain disputes.',\n        params: [],\n        type: 'Vec<(SessionIndex, CandidateHash, DisputeState)>'\n    }\n};\nconst PH_V4 = {\n    session_executor_params: {\n        description: 'Returns execution parameters for the session.',\n        params: [\n            {\n                name: 'sessionIndex',\n                type: 'SessionIndex'\n            }\n        ],\n        type: 'Option<ExecutorParams>'\n    }\n};\nconst PH_V5 = {\n    key_ownership_proof: {\n        description: 'Returns a merkle proof of a validator session key',\n        params: [\n            {\n                name: 'validatorId',\n                type: 'ValidatorId'\n            }\n        ],\n        type: 'Option<OpaqueKeyOwnershipProof>'\n    },\n    submit_report_dispute_lost: {\n        description: 'Submit an unsigned extrinsic to slash validators who lost a dispute about a candidate of a past session',\n        params: [\n            {\n                name: 'disputeProof',\n                type: 'DisputeProof'\n            },\n            {\n                name: 'keyOwnershipProof',\n                type: 'OpaqueKeyOwnershipProof'\n            }\n        ],\n        type: 'Option<Null>'\n    },\n    unapplied_slashes: {\n        description: 'Returns a list of validators that lost a past session dispute and need to be slashed',\n        params: [],\n        type: 'Vec<(SessionIndex, CandidateHash, PendingSlashes)>'\n    }\n};\nexport const runtime = {\n    ParachainHost: [\n        {\n            methods: {\n                ...PH_V1_TO_V2,\n                ...PH_V2_TO_V3,\n                ...PH_V3,\n                ...PH_V4,\n                ...PH_V5\n            },\n            version: 5\n        },\n        {\n            methods: {\n                ...PH_V1_TO_V2,\n                ...PH_V2_TO_V3,\n                ...PH_V3,\n                ...PH_V4\n            },\n            version: 4\n        },\n        {\n            methods: {\n                ...PH_V1_TO_V2,\n                ...PH_V2_TO_V3,\n                ...PH_V3\n            },\n            version: 3\n        },\n        {\n            methods: {\n                ...PH_V1_TO_V2,\n                ...PH_V2_TO_V3\n            },\n            version: 2\n        },\n        {\n            methods: {\n                session_info: {\n                    description: 'Get the session info for the given session, if stored.',\n                    params: [\n                        {\n                            name: 'index',\n                            type: 'SessionIndex'\n                        }\n                    ],\n                    type: 'Option<OldV1SessionInfo>'\n                },\n                ...PH_V1_TO_V2\n            },\n            version: 1\n        }\n    ]\n};\n","/* eslint-disable sort-keys */\nconst SlotRange10 = {\n    _enum: ['ZeroZero', 'ZeroOne', 'ZeroTwo', 'ZeroThree', 'OneOne', 'OneTwo', 'OneThree', 'TwoTwo', 'TwoThree', 'ThreeThree']\n};\nconst SlotRange = {\n    _enum: ['ZeroZero', 'ZeroOne', 'ZeroTwo', 'ZeroThree', 'ZeroFour', 'ZeroFive', 'ZeroSix', 'ZeroSeven', 'OneOne', 'OneTwo', 'OneThree', 'OneFour', 'OneFive', 'OneSix', 'OneSeven', 'TwoTwo', 'TwoThree', 'TwoFour', 'TwoFive', 'TwoSix', 'TwoSeven', 'ThreeThree', 'ThreeFour', 'ThreeFive', 'ThreeSix', 'ThreeSeven', 'FourFour', 'FourFive', 'FourSix', 'FourSeven', 'FiveFive', 'FiveSix', 'FiveSeven', 'SixSix', 'SixSeven', 'SevenSeven']\n};\nconst oldTypes = {\n    Bidder: {\n        _enum: {\n            New: 'NewBidder',\n            Existing: 'ParaId'\n        }\n    },\n    IncomingParachain: {\n        _enum: {\n            Unset: 'NewBidder',\n            Fixed: 'IncomingParachainFixed',\n            Deploy: 'IncomingParachainDeploy'\n        }\n    },\n    IncomingParachainDeploy: {\n        code: 'ValidationCode',\n        initialHeadData: 'HeadData'\n    },\n    IncomingParachainFixed: {\n        codeHash: 'Hash',\n        codeSize: 'u32',\n        initialHeadData: 'HeadData'\n    },\n    NewBidder: {\n        who: 'AccountId',\n        sub: 'SubId'\n    },\n    SubId: 'u32'\n};\nexport default {\n    ...oldTypes,\n    AuctionIndex: 'u32',\n    LeasePeriod: 'BlockNumber',\n    LeasePeriodOf: 'BlockNumber',\n    SlotRange10,\n    SlotRange,\n    WinningData10: `[WinningDataEntry; ${SlotRange10._enum.length}]`,\n    WinningData: `[WinningDataEntry; ${SlotRange._enum.length}]`,\n    WinningDataEntry: 'Option<(AccountId, ParaId, BalanceOf)>',\n    WinnersData10: 'Vec<WinnersDataTuple10>',\n    WinnersData: 'Vec<WinnersDataTuple>',\n    WinnersDataTuple10: '(AccountId, ParaId, BalanceOf, SlotRange10)',\n    WinnersDataTuple: '(AccountId, ParaId, BalanceOf, SlotRange)'\n};\n","import hrmpTypes from './hrmp.js';\nimport { runtime } from './runtime.js';\nimport slotTypes from './slots.js';\nconst proposeTypes = {\n    ParachainProposal: {\n        proposer: 'AccountId',\n        genesisHead: 'HeadData',\n        validators: 'Vec<ValidatorId>',\n        name: 'Bytes',\n        balance: 'Balance'\n    },\n    RegisteredParachainInfo: {\n        validators: 'Vec<ValidatorId>',\n        proposer: 'AccountId'\n    }\n};\nconst cumulusTypes = {\n    ServiceQuality: {\n        _enum: ['Ordered', 'Fast']\n    }\n};\nconst disputeTypes = {\n    DisputeLocation: {\n        _enum: ['Local', 'Remote']\n    },\n    DisputeResult: {\n        _enum: ['Valid', 'Invalid']\n    },\n    DisputeState: {\n        validatorsFor: 'BitVec',\n        validatorsAgainst: 'BitVec',\n        start: 'BlockNumber',\n        concludedAt: 'Option<BlockNumber>'\n    },\n    DisputeStatement: {\n        _enum: {\n            Valid: 'ValidDisputeStatementKind',\n            Invalid: 'InvalidDisputeStatementKind'\n        }\n    },\n    DisputeStatementSet: {\n        candidateHash: 'CandidateHash',\n        session: 'SessionIndex',\n        statements: 'Vec<(DisputeStatement, ParaValidatorIndex, ValidatorSignature)>'\n    },\n    ExecutorParam: {\n        _enum: {\n            Phantom: 'Null',\n            MaxMemoryPages: 'u32',\n            StackLogicalMax: 'u32',\n            StackNativeMax: 'u32',\n            PrecheckingMaxMemory: 'u64',\n            PvfPrepTimeout: '(PvfPrepTimeoutKind, u64)',\n            PvfExecTimeout: '(PvfExecTimeoutKind, u64)'\n        }\n    },\n    ExecutorParamsHash: 'Hash',\n    ExecutorParams: 'Vec<ExecutorParam>',\n    ExplicitDisputeStatement: {\n        valid: 'bool',\n        candidateHash: 'CandidateHash',\n        session: 'SessionIndex'\n    },\n    InvalidDisputeStatementKind: {\n        _enum: ['Explicit']\n    },\n    MultiDisputeStatementSet: 'Vec<DisputeStatementSet>',\n    PvfExecTimeoutKind: {\n        _enum: ['Backing', 'Approval']\n    },\n    PvfPrepTimeoutKind: {\n        _enum: ['Precheck', 'Lenient']\n    },\n    ValidDisputeStatementKind: {\n        _enum: {\n            Explicit: 'Null',\n            BackingSeconded: 'Hash',\n            BackingValid: 'Hash',\n            ApprovalChecking: 'Null'\n        }\n    }\n};\nexport default {\n    rpc: {},\n    runtime,\n    types: {\n        ...cumulusTypes,\n        ...disputeTypes,\n        ...hrmpTypes,\n        ...proposeTypes,\n        ...slotTypes,\n        AbridgedCandidateReceipt: {\n            parachainIndex: 'ParaId',\n            relayParent: 'Hash',\n            headData: 'HeadData',\n            collator: 'CollatorId',\n            signature: 'CollatorSignature',\n            povBlockHash: 'Hash',\n            commitments: 'CandidateCommitments'\n        },\n        AbridgedHostConfiguration: {\n            maxCodeSize: 'u32',\n            maxHeadDataSize: 'u32',\n            maxUpwardQueueCount: 'u32',\n            maxUpwardQueueSize: 'u32',\n            maxUpwardMessageSize: 'u32',\n            maxUpwardMessageNumPerCandidate: 'u32',\n            hrmpMaxMessageNumPerCandidate: 'u32',\n            validationUpgradeFrequency: 'BlockNumber',\n            validationUpgradeDelay: 'BlockNumber'\n        },\n        AbridgedHrmpChannel: {\n            maxCapacity: 'u32',\n            maxTotalSize: 'u32',\n            maxMessageSize: 'u32',\n            msgCount: 'u32',\n            totalSize: 'u32',\n            mqcHead: 'Option<Hash>'\n        },\n        AssignmentId: 'AccountId',\n        AssignmentKind: {\n            _enum: {\n                Parachain: 'Null',\n                Parathread: '(CollatorId, u32)'\n            }\n        },\n        AttestedCandidate: {\n            candidate: 'AbridgedCandidateReceipt',\n            validityVotes: 'Vec<ValidityAttestation>',\n            validatorIndices: 'BitVec'\n        },\n        AuthorityDiscoveryId: 'AccountId',\n        AvailabilityBitfield: 'BitVec',\n        AvailabilityBitfieldRecord: {\n            bitfield: 'AvailabilityBitfield',\n            submittedTt: 'BlockNumber'\n        },\n        BackedCandidate: {\n            candidate: 'CommittedCandidateReceipt',\n            validityVotes: 'Vec<ValidityAttestation>',\n            validatorIndices: 'BitVec'\n        },\n        BufferedSessionChange: {\n            applyAt: 'BlockNumber',\n            validators: 'Vec<ValidatorId>',\n            queued: 'Vec<ValidatorId>',\n            sessionIndex: 'SessionIndex'\n        },\n        CandidateCommitments: {\n            upwardMessages: 'Vec<UpwardMessage>',\n            horizontalMessages: 'Vec<OutboundHrmpMessage>',\n            newValidationCode: 'Option<ValidationCode>',\n            headData: 'HeadData',\n            processedDownwardMessages: 'u32',\n            hrmpWatermark: 'BlockNumber'\n        },\n        CandidateDescriptor: {\n            paraId: 'ParaId',\n            relayParent: 'RelayChainHash',\n            collatorId: 'CollatorId',\n            persistedValidationDataHash: 'Hash',\n            povHash: 'Hash',\n            erasureRoot: 'Hash',\n            signature: 'CollatorSignature',\n            paraHead: 'Hash',\n            validationCodeHash: 'ValidationCodeHash'\n        },\n        CandidateEvent: {\n            _enum: {\n                CandidateBacked: '(CandidateReceipt, HeadData, CoreIndex, GroupIndex)',\n                CandidateIncluded: '(CandidateReceipt, HeadData, CoreIndex, GroupIndex)',\n                CandidateTimedOut: '(CandidateReceipt, HeadData, CoreIndex)'\n            }\n        },\n        CandidateHash: 'Hash',\n        CandidateInfo: {\n            who: 'AccountId',\n            deposit: 'Balance'\n        },\n        CandidatePendingAvailability: {\n            core: 'CoreIndex',\n            hash: 'CandidateHash',\n            descriptor: 'CandidateDescriptor',\n            availabilityVotes: 'BitVec',\n            backers: 'BitVec',\n            relayParentNumber: 'BlockNumber',\n            backedInNumber: 'BlockNumber',\n            backingGroup: 'GroupIndex'\n        },\n        CandidateReceipt: {\n            descriptor: 'CandidateDescriptor',\n            commitmentsHash: 'Hash'\n        },\n        GlobalValidationData: {\n            maxCodeSize: 'u32',\n            maxHeadDataSize: 'u32',\n            blockNumber: 'BlockNumber'\n        },\n        CollatorId: 'H256',\n        CollatorSignature: 'Signature',\n        CommittedCandidateReceipt: {\n            descriptor: 'CandidateDescriptor',\n            commitments: 'CandidateCommitments'\n        },\n        CoreAssignment: {\n            core: 'CoreIndex',\n            paraId: 'ParaId',\n            kind: 'AssignmentKind',\n            groupIdx: 'GroupIndex'\n        },\n        CoreIndex: 'u32',\n        CoreOccupied: {\n            _enum: {\n                Parathread: 'ParathreadEntry',\n                Parachain: 'Null'\n            }\n        },\n        CoreState: {\n            _enum: {\n                Occupied: 'OccupiedCore',\n                Scheduled: 'ScheduledCore',\n                Free: 'Null'\n            }\n        },\n        DisputeProof: {\n            timeSlot: 'DisputesTimeSlot',\n            kind: 'SlashingOffenceKind',\n            validatorIndex: 'ValidatorIndex',\n            validatorId: 'ValidatorId'\n        },\n        DisputesTimeSlot: {\n            sessionIndex: 'SessionIndex',\n            candidateHash: 'CandidateHash'\n        },\n        DoubleVoteReport: {\n            identity: 'ValidatorId',\n            first: '(Statement, ValidatorSignature)',\n            second: '(Statement, ValidatorSignature)',\n            proof: 'MembershipProof',\n            signingContext: 'SigningContext'\n        },\n        DownwardMessage: 'Bytes',\n        GroupIndex: 'u32',\n        GroupRotationInfo: {\n            sessionStartBlock: 'BlockNumber',\n            groupRotationFrequency: 'BlockNumber',\n            now: 'BlockNumber'\n        },\n        GlobalValidationSchedule: {\n            maxCodeSize: 'u32',\n            maxHeadDataSize: 'u32',\n            blockNumber: 'BlockNumber'\n        },\n        HeadData: 'Bytes',\n        HostConfiguration: {\n            maxCodeSize: 'u32',\n            maxHeadDataSize: 'u32',\n            maxUpwardQueueCount: 'u32',\n            maxUpwardQueueSize: 'u32',\n            maxUpwardMessageSize: 'u32',\n            maxUpwardMessageNumPerCandidate: 'u32',\n            hrmpMaxMessageNumPerCandidate: 'u32',\n            validationUpgradeFrequency: 'BlockNumber',\n            validationUpgradeDelay: 'BlockNumber',\n            maxPovSize: 'u32',\n            maxDownwardMessageSize: 'u32',\n            preferredDispatchableUpwardMessagesStepWeight: 'Weight',\n            hrmpMaxParachainOutboundChannels: 'u32',\n            hrmpMaxParathreadOutboundChannels: 'u32',\n            hrmpOpenRequestTtl: 'u32',\n            hrmpSenderDeposit: 'Balance',\n            hrmpRecipientDeposit: 'Balance',\n            hrmpChannelMaxCapacity: 'u32',\n            hrmpChannelMaxTotalSize: 'u32',\n            hrmpMaxParachainInboundChannels: 'u32',\n            hrmpMaxParathreadInboundChannels: 'u32',\n            hrmpChannelMaxMessageSize: 'u32',\n            codeRetentionPeriod: 'BlockNumber',\n            parathreadCores: 'u32',\n            parathreadRetries: 'u32',\n            groupRotationFrequency: 'BlockNumber',\n            chainAvailabilityPeriod: 'BlockNumber',\n            threadAvailabilityPeriod: 'BlockNumber',\n            schedulingLookahead: 'u32',\n            maxValidatorsPerCore: 'Option<u32>',\n            maxValidators: 'Option<u32>',\n            disputePeriod: 'SessionIndex',\n            disputePostConclusionAcceptancePeriod: 'BlockNumber',\n            disputeMaxSpamSlots: 'u32',\n            disputeConclusionByTimeOutPeriod: 'BlockNumber',\n            noShowSlots: 'u32',\n            nDelayTranches: 'u32',\n            zerothDelayTrancheWidth: 'u32',\n            neededApprovals: 'u32',\n            relayVrfModuloSamples: 'u32'\n        },\n        InboundDownwardMessage: {\n            pubSentAt: 'BlockNumber',\n            pubMsg: 'DownwardMessage'\n        },\n        InboundHrmpMessage: {\n            sentAt: 'BlockNumber',\n            data: 'Bytes'\n        },\n        InboundHrmpMessages: 'Vec<InboundHrmpMessage>',\n        LocalValidationData: {\n            parentHead: 'HeadData',\n            balance: 'Balance',\n            codeUpgradeAllowed: 'Option<BlockNumber>'\n        },\n        MessageIngestionType: {\n            downwardMessages: 'Vec<InboundDownwardMessage>',\n            horizontalMessages: 'BTreeMap<ParaId, InboundHrmpMessages>'\n        },\n        MessageQueueChain: 'RelayChainHash',\n        OccupiedCore: {\n            nextUpOnAvailable: 'Option<ScheduledCore>',\n            occupiedSince: 'BlockNumber',\n            timeOutAt: 'BlockNumber',\n            nextUpOnTimeOut: 'Option<ScheduledCore>',\n            availability: 'BitVec',\n            groupResponsible: 'GroupIndex',\n            candidateHash: 'CandidateHash',\n            candidateDescriptor: 'CandidateDescriptor'\n        },\n        OccupiedCoreAssumption: {\n            _enum: ['Included,', 'TimedOut', 'Free']\n        },\n        OutboundHrmpMessage: {\n            recipient: 'u32',\n            data: 'Bytes'\n        },\n        PendingSlashes: {\n            _alias: {\n                slashKeys: 'keys'\n            },\n            slashKeys: 'BTreeMap<ValidatorIndex, ValidatorId>',\n            kind: 'SlashingOffenceKind'\n        },\n        ParachainDispatchOrigin: {\n            _enum: ['Signed', 'Parachain', 'Root']\n        },\n        ParachainInherentData: {\n            validationData: 'PersistedValidationData',\n            relayChainState: 'StorageProof',\n            downwardMessages: 'Vec<InboundDownwardMessage>',\n            horizontalMessages: 'BTreeMap<ParaId, VecInboundHrmpMessage>'\n        },\n        ParachainsInherentData: {\n            bitfields: 'SignedAvailabilityBitfields',\n            backedCandidates: 'Vec<BackedCandidate>',\n            disputes: 'MultiDisputeStatementSet',\n            parentHeader: 'Header'\n        },\n        ParaGenesisArgs: {\n            genesisHead: 'Bytes',\n            validationCode: 'Bytes',\n            parachain: 'bool'\n        },\n        ParaId: 'u32',\n        ParaInfo: {\n            manager: 'AccountId',\n            deposit: 'Balance',\n            locked: 'bool'\n        },\n        ParaLifecycle: {\n            _enum: ['Onboarding', 'Parathread', 'Parachain', 'UpgradingToParachain', 'DowngradingToParathread', 'OutgoingParathread', 'OutgoingParachain']\n        },\n        ParaPastCodeMeta: {\n            upgradeTimes: 'Vec<ReplacementTimes>',\n            lastPruned: 'Option<BlockNumber>'\n        },\n        ParaScheduling: {\n            _enum: ['Always', 'Dynamic']\n        },\n        ParathreadClaim: '(ParaId, CollatorId)',\n        ParathreadClaimQueue: {\n            queue: 'Vec<QueuedParathread>',\n            nextCoreOffset: 'u32'\n        },\n        ParathreadEntry: {\n            claim: 'ParathreadClaim',\n            retries: 'u32'\n        },\n        ParaValidatorIndex: 'u32',\n        PersistedValidationData: {\n            parentHead: 'HeadData',\n            relayParentNumber: 'RelayChainBlockNumber',\n            relayParentStorageRoot: 'Hash',\n            maxPovSize: 'u32'\n        },\n        PvfCheckStatement: {\n            accept: 'bool',\n            subject: 'ValidationCodeHash',\n            sessionIndex: 'SessionIndex',\n            validatorIndex: 'ParaValidatorIndex'\n        },\n        QueuedParathread: {\n            claim: 'ParathreadEntry',\n            coreOffset: 'u32'\n        },\n        RelayBlockNumber: 'u32',\n        RelayChainBlockNumber: 'RelayBlockNumber',\n        RelayHash: 'Hash',\n        RelayChainHash: 'RelayHash',\n        Remark: '[u8; 32]',\n        ReplacementTimes: {\n            expectedAt: 'BlockNumber',\n            activatedAt: 'BlockNumber'\n        },\n        Retriable: {\n            _enum: {\n                Never: 'Null',\n                WithRetries: 'u32'\n            }\n        },\n        ScheduledCore: {\n            paraId: 'ParaId',\n            collator: 'Option<CollatorId>'\n        },\n        Scheduling: {\n            _enum: ['Always', 'Dynamic']\n        },\n        ScrapedOnChainVotes: {\n            session: 'SessionIndex',\n            backingValidatorsPerCandidate: 'Vec<(CandidateReceipt, Vec<(ParaValidatorIndex, ValidityAttestation)>)>',\n            disputes: 'MultiDisputeStatementSet'\n        },\n        SessionInfo: {\n            activeValidatorIndices: 'Vec<ParaValidatorIndex>',\n            randomSeed: '[u8; 32]',\n            disputePeriod: 'SessionIndex',\n            validators: 'Vec<ValidatorId>',\n            discoveryKeys: 'Vec<AuthorityDiscoveryId>',\n            assignmentKeys: 'Vec<AssignmentId>',\n            validatorGroups: 'Vec<Vec<ValidatorIndex>>',\n            nCores: 'u32',\n            zerothDelayTrancheWidth: 'u32',\n            relayVrfModuloSamples: 'u32',\n            nDelayTranches: 'u32',\n            noShowSlots: 'u32',\n            neededApprovals: 'u32'\n        },\n        OldV1SessionInfo: {\n            validators: 'Vec<ValidatorId>',\n            discoveryKeys: 'Vec<AuthorityDiscoveryId>',\n            assignmentKeys: 'Vec<AssignmentId>',\n            validatorGroups: 'Vec<Vec<ParaValidatorIndex>>',\n            nCores: 'u32',\n            zerothDelayTrancheWidth: 'u32',\n            relayVrfModuloSamples: 'u32',\n            nDelayTranches: 'u32',\n            noShowSlots: 'u32',\n            neededApprovals: 'u32'\n        },\n        SessionInfoValidatorGroup: 'Vec<ParaValidatorIndex>',\n        SignedAvailabilityBitfield: {\n            payload: 'BitVec',\n            validatorIndex: 'ParaValidatorIndex',\n            signature: 'ValidatorSignature'\n        },\n        SignedAvailabilityBitfields: 'Vec<SignedAvailabilityBitfield>',\n        SigningContext: {\n            sessionIndex: 'SessionIndex',\n            parentHash: 'Hash'\n        },\n        SlashingOffenceKind: {\n            _enum: ['ForInvalid', 'AgainstValid']\n        },\n        Statement: {\n            _enum: {\n                Never: 'Null',\n                Candidate: 'Hash',\n                Valid: 'Hash',\n                Invalid: 'Hash'\n            }\n        },\n        TransientValidationData: {\n            maxCodeSize: 'u32',\n            maxHeadDataSize: 'u32',\n            balance: 'Balance',\n            codeUpgradeAllowed: 'Option<BlockNumber>',\n            dmqLength: 'u32'\n        },\n        UpgradeGoAhead: {\n            _enum: ['Abort', 'GoAhead']\n        },\n        UpgradeRestriction: {\n            _enum: ['Present']\n        },\n        UpwardMessage: 'Bytes',\n        ValidationFunctionParams: {\n            maxCodeSize: 'u32',\n            relayChainHeight: 'RelayChainBlockNumber',\n            codeUpgradeAllowed: 'Option<RelayChainBlockNumber>'\n        },\n        ValidationCode: 'Bytes',\n        ValidationCodeHash: 'Hash',\n        ValidationData: {\n            persisted: 'PersistedValidationData',\n            transient: 'TransientValidationData'\n        },\n        ValidationDataType: {\n            validationData: 'ValidationData',\n            relayChainState: 'Vec<Bytes>'\n        },\n        ValidatorSignature: 'Signature',\n        ValidityAttestation: {\n            _enum: {\n                Never: 'Null',\n                Implicit: 'ValidatorSignature',\n                Explicit: 'ValidatorSignature'\n            }\n        },\n        MessagingStateSnapshot: {\n            relayDispatchQueueSize: '(u32, u32)',\n            egressChannels: 'Vec<MessagingStateSnapshotEgressEntry>'\n        },\n        MessagingStateSnapshotEgressEntry: '(ParaId, AbridgedHrmpChannel)',\n        SystemInherentData: 'ParachainInherentData',\n        VecInboundHrmpMessage: 'Vec<InboundHrmpMessage>'\n    }\n};\n","/* eslint-disable sort-keys */\nexport default {\n    HrmpChannel: {\n        maxCapacity: 'u32',\n        maxTotalSize: 'u32',\n        maxMessageSize: 'u32',\n        msgCount: 'u32',\n        totalSize: 'u32',\n        mqcHead: 'Option<Hash>',\n        senderDeposit: 'Balance',\n        recipientDeposit: 'Balance'\n    },\n    HrmpChannelId: {\n        sender: 'u32',\n        receiver: 'u32'\n    },\n    HrmpOpenChannelRequest: {\n        confirmed: 'bool',\n        age: 'SessionIndex',\n        senderDeposit: 'Balance',\n        maxMessageSize: 'u32',\n        maxCapacity: 'u32',\n        maxTotalSize: 'u32'\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        Approvals: '[bool; 4]'\n    }\n};\n","export default {\n    rpc: {},\n    types: {\n        AccountStatus: {\n            validity: 'AccountValidity',\n            freeBalance: 'Balance',\n            lockedBalance: 'Balance',\n            signature: 'Vec<u8>',\n            vat: 'Permill'\n        },\n        AccountValidity: {\n            _enum: ['Invalid', 'Initiated', 'Pending', 'ValidLow', 'ValidHigh', 'Completed']\n        }\n    }\n};\n","import { objectSpread } from '@polkadot/util';\nexport const XCM_MAPPINGS = ['AssetInstance', 'Fungibility', 'Junction', 'Junctions', 'MultiAsset', 'MultiAssetFilter', 'MultiLocation', 'Response', 'WildFungibility', 'WildMultiAsset', 'Xcm', 'XcmError', 'XcmOrder'];\nexport function mapXcmTypes(version) {\n    return XCM_MAPPINGS.reduce((all, key) => objectSpread(all, { [key]: `${key}${version}` }), {});\n}\n","export const v0 = {\n    FungibilityV0: 'FungibilityV1',\n    WildFungibilityV0: 'WildFungibilityV1',\n    AssetInstanceV0: {\n        _enum: {\n            Undefined: 'Null',\n            Index8: 'u8',\n            Index16: 'Compact<u16>',\n            Index32: 'Compact<u32>',\n            Index64: 'Compact<u64>',\n            Index128: 'Compact<u128>',\n            Array4: '[u8; 4]',\n            Array8: '[u8; 8]',\n            Array16: '[u8; 16]',\n            Array32: '[u8; 32]',\n            Blob: 'Vec<u8>'\n        }\n    },\n    JunctionV0: {\n        _enum: {\n            Parent: 'Null',\n            Parachain: 'Compact<u32>',\n            AccountId32: {\n                network: 'NetworkId',\n                id: 'AccountId'\n            },\n            AccountIndex64: {\n                network: 'NetworkId',\n                index: 'Compact<u64>'\n            },\n            AccountKey20: {\n                network: 'NetworkId',\n                key: '[u8; 20]'\n            },\n            PalletInstance: 'u8',\n            GeneralIndex: 'Compact<u128>',\n            GeneralKey: 'Vec<u8>',\n            OnlyChild: 'Null',\n            Plurality: {\n                id: 'BodyId',\n                part: 'BodyPart'\n            }\n        }\n    },\n    MultiAssetV0: {\n        _enum: {\n            None: 'Null',\n            All: 'Null',\n            AllFungible: 'Null',\n            AllNonFungible: 'Null',\n            AllAbstractFungible: 'Vec<u8>',\n            AllAbstractNonFungible: 'Vec<u8>',\n            AllConcreteFungible: 'MultiLocationV0',\n            AllConcreteNonFungible: 'MultiLocationV0',\n            AbstractFungible: {\n                id: 'Vec<u8>',\n                instance: 'Compact<u128>'\n            },\n            AbstractNonFungible: {\n                class: 'Vec<u8>',\n                instance: 'AssetInstanceV0'\n            },\n            ConcreteFungible: {\n                id: 'MultiLocationV0',\n                amount: 'Compact<u128>'\n            },\n            ConcreteNonFungible: {\n                class: 'MultiLocationV0',\n                instance: 'AssetInstanceV0'\n            }\n        }\n    },\n    MultiLocationV0: {\n        _enum: {\n            Here: 'Null',\n            X1: 'JunctionV0',\n            X2: '(JunctionV0, JunctionV0)',\n            X3: '(JunctionV0, JunctionV0, JunctionV0)',\n            X4: '(JunctionV0, JunctionV0, JunctionV0, JunctionV0)',\n            X5: '(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)',\n            X6: '(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)',\n            X7: '(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)',\n            X8: '(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)'\n        }\n    },\n    OriginKindV0: {\n        _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']\n    },\n    ResponseV0: {\n        _enum: {\n            Assets: 'Vec<MultiAssetV0>'\n        }\n    },\n    XcmV0: {\n        _enum: {\n            WithdrawAsset: {\n                assets: 'Vec<MultiAssetV0>',\n                effects: 'Vec<XcmOrderV0>'\n            },\n            ReserveAssetDeposit: {\n                assets: 'Vec<MultiAssetV0>',\n                effects: 'Vec<XcmOrderV0>'\n            },\n            ReceiveTeleportedAsset: {\n                assets: 'Vec<MultiAssetV0>',\n                effects: 'Vec<XcmOrderV0>'\n            },\n            QueryResponse: {\n                queryId: 'Compact<u64>',\n                response: 'ResponseV0'\n            },\n            TransferAsset: {\n                assets: 'Vec<MultiAssetV0>',\n                dest: 'MultiLocationV0'\n            },\n            TransferReserveAsset: {\n                assets: 'Vec<MultiAssetV0>',\n                dest: 'MultiLocationV0',\n                effects: 'Vec<XcmOrderV0>'\n            },\n            Transact: {\n                originType: 'XcmOriginKind',\n                requireWeightAtMost: 'u64',\n                call: 'DoubleEncodedCall'\n            },\n            HrmpNewChannelOpenRequest: {\n                sender: 'Compact<u32>',\n                maxMessageSize: 'Compact<u32>',\n                maxCapacity: 'Compact<u32>'\n            },\n            HrmpChannelAccepted: {\n                recipient: 'Compact<u32>'\n            },\n            HrmpChannelClosing: {\n                initiator: 'Compact<u32>',\n                sender: 'Compact<u32>',\n                recipient: 'Compact<u32>'\n            },\n            RelayedFrom: {\n                who: 'MultiLocationV0',\n                message: 'XcmV0'\n            }\n        }\n    },\n    XcmErrorV0: {\n        _enum: {\n            Undefined: 'Null',\n            Overflow: 'Null',\n            Unimplemented: 'Null',\n            UnhandledXcmVersion: 'Null',\n            UnhandledXcmMessage: 'Null',\n            UnhandledEffect: 'Null',\n            EscalationOfPrivilege: 'Null',\n            UntrustedReserveLocation: 'Null',\n            UntrustedTeleportLocation: 'Null',\n            DestinationBufferOverflow: 'Null',\n            SendFailed: 'Null',\n            CannotReachDestination: '(MultiLocation, Xcm)',\n            MultiLocationFull: 'Null',\n            FailedToDecode: 'Null',\n            BadOrigin: 'Null',\n            ExceedsMaxMessageSize: 'Null',\n            FailedToTransactAsset: 'Null',\n            WeightLimitReached: 'Weight',\n            Wildcard: 'Null',\n            TooMuchWeightRequired: 'Null',\n            NotHoldingFees: 'Null',\n            WeightNotComputable: 'Null',\n            Barrier: 'Null',\n            NotWithdrawable: 'Null',\n            LocationCannotHold: 'Null',\n            TooExpensive: 'Null',\n            AssetNotFound: 'Null',\n            RecursionLimitReached: 'Null'\n        }\n    },\n    XcmOrderV0: {\n        _enum: {\n            Null: 'Null',\n            DepositAsset: {\n                assets: 'Vec<MultiAssetV0>',\n                dest: 'MultiLocationV0'\n            },\n            DepositReserveAsset: {\n                assets: 'Vec<MultiAssetV0>',\n                dest: 'MultiLocationV0',\n                effects: 'Vec<XcmOrderV0>'\n            },\n            ExchangeAsset: {\n                give: 'Vec<MultiAssetV0>',\n                receive: 'Vec<MultiAssetV0>'\n            },\n            InitiateReserveWithdraw: {\n                assets: 'Vec<MultiAssetV0>',\n                reserve: 'MultiLocationV0',\n                effects: 'Vec<XcmOrderV0>'\n            },\n            InitiateTeleport: {\n                assets: 'Vec<MultiAssetV0>',\n                dest: 'MultiLocationV0',\n                effects: 'Vec<XcmOrderV0>'\n            },\n            QueryHolding: {\n                queryId: 'Compact<u64>',\n                dest: 'MultiLocationV0',\n                assets: 'Vec<MultiAssetV0>'\n            },\n            BuyExecution: {\n                fees: 'MultiAssetV0',\n                weight: 'u64',\n                debt: 'u64',\n                haltOnError: 'bool',\n                xcm: 'Vec<XcmV0>'\n            }\n        }\n    }\n};\n","import { mapXcmTypes } from '@polkadot/types-create';\nimport { v0 } from './v0.js';\nimport { v1 } from './v1.js';\nimport { v2 } from './v2.js';\nconst XCM_LATEST = 'V2';\nconst xcm = {\n    XcmOrigin: {\n        _enum: {\n            Xcm: 'MultiLocation'\n        }\n    },\n    XcmpMessageFormat: {\n        _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals']\n    },\n    XcmAssetId: {\n        _enum: {\n            Concrete: 'MultiLocation',\n            Abstract: 'Bytes'\n        }\n    },\n    InboundStatus: {\n        _enum: ['Ok', 'Suspended']\n    },\n    OutboundStatus: {\n        _enum: ['Ok', 'Suspended']\n    },\n    MultiAssets: 'Vec<MultiAsset>'\n};\nconst location = {\n    BodyId: {\n        _enum: {\n            Unit: 'Null',\n            Named: 'Vec<u8>',\n            Index: 'Compact<u32>',\n            Executive: 'Null',\n            Technical: 'Null',\n            Legislative: 'Null',\n            Judicial: 'Null'\n        }\n    },\n    BodyPart: {\n        _enum: {\n            Voice: 'Null',\n            Members: 'Compact<u32>',\n            Fraction: {\n                nom: 'Compact<u32>',\n                denom: 'Compact<u32>'\n            },\n            AtLeastProportion: {\n                nom: 'Compact<u32>',\n                denom: 'Compact<u32>'\n            },\n            MoreThanProportion: {\n                nom: 'Compact<u32>',\n                denom: 'Compact<u32>'\n            }\n        }\n    },\n    InteriorMultiLocation: 'Junctions',\n    NetworkId: {\n        _enum: {\n            Any: 'Null',\n            Named: 'Vec<u8>',\n            Polkadot: 'Null',\n            Kusama: 'Null'\n        }\n    }\n};\nexport default {\n    rpc: {},\n    types: {\n        ...location,\n        ...xcm,\n        ...v0,\n        ...v1,\n        ...v2,\n        ...mapXcmTypes(XCM_LATEST),\n        DoubleEncodedCall: {\n            encoded: 'Vec<u8>'\n        },\n        XcmOriginKind: {\n            _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm']\n        },\n        Outcome: {\n            _enum: {\n                Complete: 'Weight',\n                Incomplete: '(Weight, XcmErrorV0)',\n                Error: 'XcmErrorV0'\n            }\n        },\n        QueryId: 'u64',\n        QueryStatus: {\n            _enum: {\n                Pending: {\n                    responder: 'VersionedMultiLocation',\n                    maybeNotify: 'Option<(u8, u8)>',\n                    timeout: 'BlockNumber'\n                },\n                Ready: {\n                    response: 'VersionedResponse',\n                    at: 'BlockNumber'\n                }\n            }\n        },\n        QueueConfigData: {\n            suspendThreshold: 'u32',\n            dropThreshold: 'u32',\n            resumeThreshold: 'u32',\n            thresholdWeight: 'Weight',\n            weightRestrictDecay: 'Weight'\n        },\n        VersionMigrationStage: {\n            _enum: {\n                MigrateSupportedVersion: 'Null',\n                MigrateVersionNotifiers: 'Null',\n                NotifyCurrentTargets: 'Option<Bytes>',\n                MigrateAndNotifyOldTargets: 'Null'\n            }\n        },\n        VersionedMultiAsset: {\n            _enum: {\n                V0: 'MultiAssetV0',\n                V1: 'MultiAssetV1',\n                V2: 'MultiAssetV2'\n            }\n        },\n        VersionedMultiAssets: {\n            _enum: {\n                V0: 'Vec<MultiAssetV0>',\n                V1: 'MultiAssetsV1',\n                V2: 'MultiAssetsV2'\n            }\n        },\n        VersionedMultiLocation: {\n            _enum: {\n                V0: 'MultiLocationV0',\n                V1: 'MultiLocationV1',\n                V2: 'MultiLocationV2'\n            }\n        },\n        VersionedResponse: {\n            V0: 'ResponseV0',\n            V1: 'ResponseV1',\n            V2: 'ResponseV2'\n        },\n        VersionedXcm: {\n            _enum: {\n                V0: 'XcmV0',\n                V1: 'XcmV1',\n                V2: 'XcmV2'\n            }\n        },\n        XcmVersion: 'u32'\n    }\n};\n","export const v1 = {\n    AssetInstanceV1: {\n        _enum: {\n            Undefined: 'Null',\n            Index: 'Compact<u128>',\n            Array4: '[u8; 4]',\n            Array8: '[u8; 8]',\n            Array16: '[u8; 16]',\n            Array32: '[u8; 32]',\n            Blob: 'Bytes'\n        }\n    },\n    FungibilityV1: {\n        _enum: {\n            Fungible: 'Compact<u128>',\n            NonFungible: 'AssetInstanceV1'\n        }\n    },\n    JunctionV1: {\n        _enum: {\n            Parachain: 'Compact<u32>',\n            AccountId32: {\n                network: 'NetworkId',\n                id: 'AccountId'\n            },\n            AccountIndex64: {\n                network: 'NetworkId',\n                index: 'Compact<u64>'\n            },\n            AccountKey20: {\n                network: 'NetworkId',\n                key: '[u8; 20]'\n            },\n            PalletInstance: 'u8',\n            GeneralIndex: 'Compact<u128>',\n            GeneralKey: 'Vec<u8>',\n            OnlyChild: 'Null',\n            Plurality: {\n                id: 'BodyId',\n                part: 'BodyPart'\n            }\n        }\n    },\n    JunctionsV1: {\n        _enum: {\n            Here: 'Null',\n            X1: 'JunctionV1',\n            X2: '(JunctionV1, JunctionV1)',\n            X3: '(JunctionV1, JunctionV1, JunctionV1)',\n            X4: '(JunctionV1, JunctionV1, JunctionV1, JunctionV1)',\n            X5: '(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)',\n            X6: '(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)',\n            X7: '(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)',\n            X8: '(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)'\n        }\n    },\n    MultiAssetsV1: 'Vec<MultiAssetV1>',\n    MultiAssetV1: {\n        id: 'XcmAssetId',\n        fungibility: 'FungibilityV1'\n    },\n    MultiAssetFilterV1: {\n        _enum: {\n            Definite: 'MultiAssetsV1',\n            Wild: 'WildMultiAssetV1'\n        }\n    },\n    MultiLocationV1: {\n        parents: 'u8',\n        interior: 'JunctionsV1'\n    },\n    OriginKindV1: 'OriginKindV0',\n    ResponseV1: {\n        _enum: {\n            Assets: 'MultiAssetsV1'\n        }\n    },\n    WildFungibilityV1: {\n        _enum: ['Fungible', 'NonFungible']\n    },\n    WildMultiAssetV1: {\n        _enum: {\n            All: 'Null',\n            AllOf: {\n                id: 'XcmAssetId',\n                fungibility: 'WildFungibilityV1'\n            }\n        }\n    },\n    XcmV1: {\n        _enum: {\n            WithdrawAsset: {\n                assets: 'MultiAssetsV1',\n                effects: 'Vec<XcmOrderV1>'\n            },\n            ReserveAssetDeposit: {\n                assets: 'MultiAssetsV1',\n                effects: 'Vec<XcmOrderV1>'\n            },\n            ReceiveTeleportedAsset: {\n                assets: 'MultiAssetsV1',\n                effects: 'Vec<XcmOrderV1>'\n            },\n            QueryResponse: {\n                queryId: 'Compact<u64>',\n                response: 'ResponseV1'\n            },\n            TransferAsset: {\n                assets: 'MultiAssetsV1',\n                dest: 'MultiLocationV1'\n            },\n            TransferReserveAsset: {\n                assets: 'MultiAssetsV1',\n                dest: 'MultiLocationV1',\n                effects: 'Vec<XcmOrderV1>'\n            },\n            Transact: {\n                originType: 'XcmOriginKind',\n                requireWeightAtMost: 'u64',\n                call: 'DoubleEncodedCall'\n            },\n            HrmpNewChannelOpenRequest: {\n                sender: 'Compact<u32>',\n                maxMessageSize: 'Compact<u32>',\n                maxCapacity: 'Compact<u32>'\n            },\n            HrmpChannelAccepted: {\n                recipient: 'Compact<u32>'\n            },\n            HrmpChannelClosing: {\n                initiator: 'Compact<u32>',\n                sender: 'Compact<u32>',\n                recipient: 'Compact<u32>'\n            },\n            RelayedFrom: {\n                who: 'MultiLocationV1',\n                message: 'XcmV1'\n            }\n        }\n    },\n    XcmErrorV1: {\n        _enum: {\n            Undefined: 'Null',\n            Overflow: 'Null',\n            Unimplemented: 'Null',\n            UnhandledXcmVersion: 'Null',\n            UnhandledXcmMessage: 'Null',\n            UnhandledEffect: 'Null',\n            EscalationOfPrivilege: 'Null',\n            UntrustedReserveLocation: 'Null',\n            UntrustedTeleportLocation: 'Null',\n            DestinationBufferOverflow: 'Null',\n            SendFailed: 'Null',\n            CannotReachDestination: '(MultiLocationV1, XcmV1)',\n            MultiLocationFull: 'Null',\n            FailedToDecode: 'Null',\n            BadOrigin: 'Null',\n            ExceedsMaxMessageSize: 'Null',\n            FailedToTransactAsset: 'Null',\n            WeightLimitReached: 'Weight',\n            Wildcard: 'Null',\n            TooMuchWeightRequired: 'Null',\n            NotHoldingFees: 'Null',\n            WeightNotComputable: 'Null',\n            Barrier: 'Null',\n            NotWithdrawable: 'Null',\n            LocationCannotHold: 'Null',\n            TooExpensive: 'Null',\n            AssetNotFound: 'Null',\n            DestinationUnsupported: 'Null',\n            RecursionLimitReached: 'Null'\n        }\n    },\n    XcmOrderV1: {\n        _enum: {\n            Noop: 'Null',\n            DepositAsset: {\n                assets: 'MultiAssetFilterV1',\n                maxAssets: 'u32',\n                beneficiary: 'MultiLocationV1'\n            },\n            DepositReserveAsset: {\n                assets: 'MultiAssetFilterV1',\n                maxAssets: 'u32',\n                dest: 'MultiLocationV1',\n                effects: 'Vec<XcmOrderV1>'\n            },\n            ExchangeAsset: {\n                give: 'MultiAssetFilterV1',\n                receive: 'MultiAssetsV1'\n            },\n            InitiateReserveWithdraw: {\n                assets: 'MultiAssetFilterV1',\n                reserve: 'MultiLocationV1',\n                effects: 'Vec<XcmOrderV1>'\n            },\n            InitiateTeleport: {\n                assets: 'MultiAssetFilterV1',\n                dest: 'MultiLocationV1',\n                effects: 'Vec<XcmOrderV1>'\n            },\n            QueryHolding: {\n                queryId: 'Compact<u64>',\n                dest: 'MultiLocationV1',\n                assets: 'MultiAssetFilterV1'\n            },\n            BuyExecution: {\n                fees: 'MultiAssetV1',\n                weight: 'u64',\n                debt: 'u64',\n                haltOnError: 'bool',\n                instructions: 'Vec<XcmV1>'\n            }\n        }\n    }\n};\n","export const v2 = {\n    AssetInstanceV2: 'AssetInstanceV1',\n    FungibilityV2: 'FungibilityV1',\n    JunctionV2: 'JunctionV1',\n    JunctionsV2: 'JunctionsV1',\n    MultiAssetsV2: 'MultiAssetsV1',\n    MultiAssetV2: 'MultiAssetV1',\n    MultiAssetFilterV2: 'MultiAssetFilterV1',\n    MultiLocationV2: 'MultiLocationV1',\n    OriginKindV2: 'OriginKindV1',\n    WildFungibilityV2: 'WildFungibilityV1',\n    ResponseV2: {\n        _enum: {\n            Null: 'Null',\n            Assets: 'MultiAssetsV2',\n            ExecutionResult: 'ResponseV2Result'\n        }\n    },\n    ResponseV2Error: '(u32, XcmErrorV2)',\n    ResponseV2Result: 'Result<Null, ResponseV2Error>',\n    WeightLimitV2: {\n        _enum: {\n            Unlimited: 'Null',\n            Limited: 'Compact<u64>'\n        }\n    },\n    InstructionV2: {\n        _enum: {\n            WithdrawAsset: 'MultiAssetsV2',\n            ReserveAssetDeposited: 'MultiAssetsV2',\n            ReceiveTeleportedAsset: 'MultiAssetsV2',\n            QueryResponse: {\n                queryId: 'Compact<u64>',\n                response: 'ResponseV2',\n                maxWeight: 'Compact<u64>'\n            },\n            TransferAsset: {\n                assets: 'MultiAssetsV2',\n                beneficiary: 'MultiLocationV2'\n            },\n            TransferReserveAsset: {\n                assets: 'MultiAssetsV2',\n                dest: 'MultiLocationV2',\n                xcm: 'XcmV2'\n            },\n            Transact: {\n                originType: 'OriginKindV2',\n                requireWeightAtMost: 'u64',\n                call: 'DoubleEncodedCall'\n            },\n            HrmpNewChannelOpenRequest: {\n                sender: 'Compact<u32>',\n                maxMessageSize: 'Compact<u32>',\n                maxCapacity: 'Compact<u32>'\n            },\n            HrmpChannelAccepted: {\n                recipient: 'Compact<u32>'\n            },\n            HrmpChannelClosing: {\n                initiator: 'Compact<u32>',\n                sender: 'Compact<u32>',\n                recipient: 'Compact<u32>'\n            },\n            ClearOrigin: 'Null',\n            DescendOrigin: 'InteriorMultiLocation',\n            ReportError: {\n                queryId: 'Compact<u64>',\n                dest: 'MultiLocationV2',\n                maxResponseWeight: 'Compact<u64>'\n            },\n            DepositAsset: {\n                assets: 'MultiAssetFilterV2',\n                maxAssets: 'u32',\n                beneficiary: 'MultiLocationV2'\n            },\n            DepositReserveAsset: {\n                assets: 'MultiAssetFilterV2',\n                maxAssets: 'u32',\n                dest: 'MultiLocationV2',\n                xcm: 'XcmV2'\n            },\n            ExchangeAsset: {\n                give: 'MultiAssetFilterV2',\n                receive: 'MultiAssetsV2'\n            },\n            InitiateReserveWithdraw: {\n                assets: 'MultiAssetFilterV2',\n                reserve: 'MultiLocationV2',\n                xcm: 'XcmV2'\n            },\n            InitiateTeleport: {\n                assets: 'MultiAssetFilterV2',\n                dest: 'MultiLocationV2',\n                xcm: 'XcmV2'\n            },\n            QueryHolding: {\n                query_id: 'Compact<u64>',\n                dest: 'MultiLocationV2',\n                assets: 'MultiAssetFilterV2',\n                maxResponse_Weight: 'Compact<u64>'\n            },\n            BuyExecution: {\n                fees: 'MultiAssetV2',\n                weightLimit: 'WeightLimitV2'\n            },\n            RefundSurplus: 'Null',\n            SetErrorHandler: 'XcmV2',\n            SetAppendix: 'XcmV2',\n            ClearError: 'Null',\n            ClaimAsset: {\n                assets: 'MultiAssetsV2',\n                ticket: 'MultiLocationV2'\n            },\n            Trap: 'u64'\n        }\n    },\n    WildMultiAssetV2: 'WildMultiAssetV1',\n    XcmV2: 'Vec<InstructionV2>',\n    XcmErrorV2: {\n        _enum: {\n            Undefined: 'Null',\n            Overflow: 'Null',\n            Unimplemented: 'Null',\n            UnhandledXcmVersion: 'Null',\n            UnhandledXcmMessage: 'Null',\n            UnhandledEffect: 'Null',\n            EscalationOfPrivilege: 'Null',\n            UntrustedReserveLocation: 'Null',\n            UntrustedTeleportLocation: 'Null',\n            DestinationBufferOverflow: 'Null',\n            MultiLocationFull: 'Null',\n            MultiLocationNotInvertible: 'Null',\n            FailedToDecode: 'Null',\n            BadOrigin: 'Null',\n            ExceedsMaxMessageSize: 'Null',\n            FailedToTransactAsset: 'Null',\n            WeightLimitReached: 'Weight',\n            Wildcard: 'Null',\n            TooMuchWeightRequired: 'Null',\n            NotHoldingFees: 'Null',\n            WeightNotComputable: 'Null',\n            Barrier: 'Null',\n            NotWithdrawable: 'Null',\n            LocationCannotHold: 'Null',\n            TooExpensive: 'Null',\n            AssetNotFound: 'Null',\n            DestinationUnsupported: 'Null',\n            RecursionLimitReached: 'Null',\n            Transport: 'Null',\n            Unroutable: 'Null',\n            UnknownWeightRequired: 'Null',\n            Trap: 'u64',\n            UnknownClaim: 'Null',\n            InvalidLocation: 'Null'\n        }\n    },\n    XcmOrderV2: 'XcmOrderV1'\n};\n","/* eslint-disable sort-keys */\nconst layout = {\n    ContractCryptoHasher: {\n        _enum: ['Blake2x256', 'Sha2x256', 'Keccak256']\n    },\n    ContractDiscriminant: 'u32',\n    ContractLayoutArray: {\n        offset: 'ContractLayoutKey',\n        len: 'u32',\n        cellsPerElem: 'u64',\n        layout: 'ContractStorageLayout'\n    },\n    ContractLayoutCell: {\n        key: 'ContractLayoutKey',\n        ty: 'SiLookupTypeId'\n    },\n    ContractLayoutEnum: {\n        dispatchKey: 'ContractLayoutKey',\n        variants: 'BTreeMap<ContractDiscriminant, ContractLayoutStruct>'\n    },\n    ContractLayoutHash: {\n        offset: 'ContractLayoutKey',\n        strategy: 'ContractLayoutHashingStrategy',\n        layout: 'ContractStorageLayout'\n    },\n    ContractLayoutHashingStrategy: {\n        hasher: 'ContractCryptoHasher',\n        postfix: 'Vec<u8>',\n        prefix: 'Vec<u8>'\n    },\n    ContractLayoutKey: '[u8; 32]',\n    ContractLayoutStruct: {\n        fields: 'Vec<ContractLayoutStructField>'\n    },\n    ContractLayoutStructField: {\n        layout: 'ContractStorageLayout',\n        name: 'Text'\n    },\n    ContractStorageLayout: {\n        _enum: {\n            Cell: 'ContractLayoutCell',\n            Hash: 'ContractLayoutHash',\n            Array: 'ContractLayoutArray',\n            Struct: 'ContractLayoutStruct',\n            Enum: 'ContractLayoutEnum'\n        }\n    }\n};\nconst spec = {\n    ContractConstructorSpecV0: {\n        name: 'Text',\n        selector: 'ContractSelector',\n        args: 'Vec<ContractMessageParamSpecV0>',\n        docs: 'Vec<Text>'\n    },\n    ContractConstructorSpecV1: {\n        name: 'Vec<Text>',\n        selector: 'ContractSelector',\n        args: 'Vec<ContractMessageParamSpecV0>',\n        docs: 'Vec<Text>'\n    },\n    ContractConstructorSpecV2: {\n        label: 'Text',\n        selector: 'ContractSelector',\n        args: 'Vec<ContractMessageParamSpecV2>',\n        docs: 'Vec<Text>'\n    },\n    ContractConstructorSpecV3: {\n        label: 'Text',\n        selector: 'ContractSelector',\n        payable: 'bool',\n        args: 'Vec<ContractMessageParamSpecV2>',\n        docs: 'Vec<Text>'\n    },\n    ContractConstructorSpecV4: {\n        label: 'Text',\n        selector: 'ContractSelector',\n        payable: 'bool',\n        args: 'Vec<ContractMessageParamSpecV2>',\n        docs: 'Vec<Text>',\n        default: 'bool',\n        returnType: 'Option<ContractTypeSpec>'\n    },\n    ContractContractSpecV0: {\n        constructors: 'Vec<ContractConstructorSpecV0>',\n        messages: 'Vec<ContractMessageSpecV0>',\n        events: 'Vec<ContractEventSpecV0>',\n        docs: 'Vec<Text>'\n    },\n    ContractContractSpecV1: {\n        constructors: 'Vec<ContractConstructorSpecV1>',\n        messages: 'Vec<ContractMessageSpecV1>',\n        events: 'Vec<ContractEventSpecV1>',\n        docs: 'Vec<Text>'\n    },\n    ContractContractSpecV2: {\n        constructors: 'Vec<ContractConstructorSpecV2>',\n        messages: 'Vec<ContractMessageSpecV2>',\n        events: 'Vec<ContractEventSpecV2>',\n        docs: 'Vec<Text>'\n    },\n    ContractContractSpecV3: {\n        constructors: 'Vec<ContractConstructorSpecV3>',\n        messages: 'Vec<ContractMessageSpecV2>',\n        events: 'Vec<ContractEventSpecV2>',\n        docs: 'Vec<Text>'\n    },\n    ContractContractSpecV4: {\n        constructors: 'Vec<ContractConstructorSpecV4>',\n        messages: 'Vec<ContractMessageSpecV3>',\n        events: 'Vec<ContractEventSpecV2>',\n        docs: 'Vec<Text>',\n        environment: 'ContractEnvironmentV4'\n    },\n    ContractDisplayName: 'SiPath',\n    ContractEventParamSpecV0: {\n        name: 'Text',\n        indexed: 'bool',\n        type: 'ContractTypeSpec',\n        docs: 'Vec<Text>'\n    },\n    ContractEventParamSpecV2: {\n        label: 'Text',\n        indexed: 'bool',\n        type: 'ContractTypeSpec',\n        docs: 'Vec<Text>'\n    },\n    ContractEventSpecV0: {\n        name: 'Text',\n        args: 'Vec<ContractEventParamSpecV0>',\n        docs: 'Vec<Text>'\n    },\n    ContractEventSpecV1: {\n        name: 'Text',\n        args: 'Vec<ContractEventParamSpecV0>',\n        docs: 'Vec<Text>'\n    },\n    ContractEventSpecV2: {\n        label: 'Text',\n        args: 'Vec<ContractEventParamSpecV2>',\n        docs: 'Vec<Text>'\n    },\n    ContractMessageParamSpecV0: {\n        name: 'Text',\n        type: 'ContractTypeSpec'\n    },\n    ContractMessageParamSpecV2: {\n        label: 'Text',\n        type: 'ContractTypeSpec'\n    },\n    ContractMessageSpecV0: {\n        name: 'Text',\n        selector: 'ContractSelector',\n        mutates: 'bool',\n        payable: 'bool',\n        args: 'Vec<ContractMessageParamSpecV0>',\n        returnType: 'Option<ContractTypeSpec>',\n        docs: 'Vec<Text>'\n    },\n    ContractMessageSpecV1: {\n        name: 'Vec<Text>',\n        selector: 'ContractSelector',\n        mutates: 'bool',\n        payable: 'bool',\n        args: 'Vec<ContractMessageParamSpecV0>',\n        returnType: 'Option<ContractTypeSpec>',\n        docs: 'Vec<Text>'\n    },\n    ContractMessageSpecV2: {\n        label: 'Text',\n        selector: 'ContractSelector',\n        mutates: 'bool',\n        payable: 'bool',\n        args: 'Vec<ContractMessageParamSpecV2>',\n        returnType: 'Option<ContractTypeSpec>',\n        docs: 'Vec<Text>'\n    },\n    ContractMessageSpecV3: {\n        label: 'Text',\n        selector: 'ContractSelector',\n        mutates: 'bool',\n        payable: 'bool',\n        args: 'Vec<ContractMessageParamSpecV2>',\n        returnType: 'Option<ContractTypeSpec>',\n        docs: 'Vec<Text>',\n        default: 'bool'\n    },\n    ContractSelector: '[u8; 4]',\n    ContractTypeSpec: {\n        type: 'SiLookupTypeId',\n        displayName: 'ContractDisplayName'\n    }\n};\nconst latest = {\n    ContractConstructorSpecLatest: 'ContractConstructorSpecV4',\n    ContractEventSpecLatest: 'ContractEventSpecV2',\n    ContractEventParamSpecLatest: 'ContractEventParamSpecV2',\n    ContractMessageParamSpecLatest: 'ContractMessageParamSpecV2',\n    ContractMessageSpecLatest: 'ContractMessageSpecV3',\n    ContractMetadataLatest: 'ContractMetadataV4'\n};\nexport default {\n    rpc: {},\n    types: {\n        ...layout,\n        ...spec,\n        ...latest,\n        ContractProjectInfo: {\n            source: 'ContractProjectSource',\n            contract: 'ContractProjectContract'\n        },\n        ContractMetadataV0: {\n            metadataVersion: 'Text',\n            types: 'Vec<Si0Type>',\n            spec: 'ContractContractSpecV0'\n        },\n        ContractMetadataV1: {\n            types: 'Vec<PortableType>',\n            spec: 'ContractContractSpecV1'\n        },\n        ContractMetadataV2: {\n            types: 'Vec<PortableType>',\n            spec: 'ContractContractSpecV2'\n        },\n        ContractMetadataV3: {\n            types: 'Vec<PortableType>',\n            spec: 'ContractContractSpecV3'\n        },\n        ContractMetadataV4: {\n            types: 'Vec<PortableType>',\n            spec: 'ContractContractSpecV4'\n        },\n        ContractMetadata: {\n            _enum: {\n                V0: 'ContractMetadataV0',\n                V1: 'ContractMetadataV1',\n                V2: 'ContractMetadataV2',\n                V3: 'ContractMetadataV3',\n                V4: 'ContractMetadataV4'\n            }\n        },\n        ContractProjectV0: {\n            metadataVersion: 'Text',\n            source: 'ContractProjectSource',\n            contract: 'ContractProjectContract',\n            types: 'Vec<Si0Type>',\n            spec: 'ContractContractSpecV0'\n        },\n        ContractProject: '(ContractProjectInfo, ContractMetadata)',\n        ContractProjectContract: {\n            _alias: {\n                docs: 'documentation'\n            },\n            name: 'Text',\n            version: 'Text',\n            authors: 'Vec<Text>',\n            description: 'Option<Text>',\n            docs: 'Option<Text>',\n            repository: 'Option<Text>',\n            homepage: 'Option<Text>',\n            license: 'Option<Text>'\n        },\n        ContractProjectSource: {\n            _alias: {\n                wasmHash: 'hash'\n            },\n            wasmHash: '[u8; 32]',\n            language: 'Text',\n            compiler: 'Text',\n            wasm: 'Raw'\n        },\n        ContractEnvironmentV4: {\n            _alias: {\n                hashType: 'hash'\n            },\n            // NOTE These are not marked optional in the Rust code, however since we\n            // convert from older versions to newer, we may not have these fields.\n            // The Option<...> works since our inputs are always JSON, so it will\n            // be None when not specified.\n            //\n            // Additionally we don't mark the full structure as Option, rather we\n            // do it on a per-field basis since fields may be added as the versions\n            // progress.\n            accountId: 'Option<ContractTypeSpec>',\n            balance: 'Option<ContractTypeSpec>',\n            blockNumber: 'Option<ContractTypeSpec>',\n            hashType: 'Option<ContractTypeSpec>',\n            timestamp: 'Option<ContractTypeSpec>',\n            maxEventTopics: 'Option<u32>'\n        }\n    }\n};\n","const ethMethodsV4 = {\n    account_basic: {\n        description: 'Returns pallet_evm::Accounts by address.',\n        params: [\n            {\n                name: 'address',\n                type: 'H160'\n            }\n        ],\n        type: 'EvmAccount'\n    },\n    account_code_at: {\n        description: 'For a given account address, returns pallet_evm::AccountCodes.',\n        params: [\n            {\n                name: 'address',\n                type: 'H160'\n            }\n        ],\n        type: 'Bytes'\n    },\n    author: {\n        description: 'Returns the converted FindAuthor::find_author authority id.',\n        params: [],\n        type: 'H160'\n    },\n    call: {\n        description: 'Returns a frame_ethereum::call response. If `estimate` is true,',\n        params: [\n            {\n                name: 'from',\n                type: 'H160'\n            },\n            {\n                name: 'to',\n                type: 'H160'\n            },\n            {\n                name: 'data',\n                type: 'Vec<u8>'\n            },\n            {\n                name: 'value',\n                type: 'U256'\n            },\n            {\n                name: 'gasLimit',\n                type: 'U256'\n            },\n            {\n                name: 'maxFeePerGas',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'maxPriorityFeePerGas',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'nonce',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'estimate',\n                type: 'bool'\n            },\n            {\n                name: 'accessList',\n                type: 'Option<Vec<(H160, Vec<H256>)>>'\n            }\n        ],\n        type: 'Result<EvmCallInfo, DispatchError>'\n    },\n    chain_id: {\n        description: 'Returns runtime defined pallet_evm::ChainId.',\n        params: [],\n        type: 'u64'\n    },\n    create: {\n        description: 'Returns a frame_ethereum::call response. If `estimate` is true,',\n        params: [\n            {\n                name: 'from',\n                type: 'H160'\n            },\n            {\n                name: 'data',\n                type: 'Vec<u8>'\n            },\n            {\n                name: 'value',\n                type: 'U256'\n            },\n            {\n                name: 'gasLimit',\n                type: 'U256'\n            },\n            {\n                name: 'maxFeePerGas',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'maxPriorityFeePerGas',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'nonce',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'estimate',\n                type: 'bool'\n            },\n            {\n                name: 'accessList',\n                type: 'Option<Vec<(H160, Vec<H256>)>>'\n            }\n        ],\n        type: 'Result<EvmCreateInfo, DispatchError>'\n    },\n    current_all: {\n        description: 'Return all the current data for a block in a single runtime call.',\n        params: [],\n        type: '(Option<BlockV2>, Option<Vec<EthReceiptV3>>, Option<Vec<EthTransactionStatus>>)'\n    },\n    current_block: {\n        description: 'Return the current block.',\n        params: [],\n        type: 'BlockV2'\n    },\n    current_receipts: {\n        description: 'Return the current receipt.',\n        params: [],\n        type: 'Option<Vec<EthReceiptV3>>'\n    },\n    current_transaction_statuses: {\n        description: 'Return the current transaction status.',\n        params: [],\n        type: 'Option<Vec<EthTransactionStatus>>'\n    },\n    elasticity: {\n        description: 'Return the elasticity multiplier.',\n        params: [],\n        type: 'Option<Permill>'\n    },\n    extrinsic_filter: {\n        description: 'Receives a `Vec<OpaqueExtrinsic>` and filters all the ethereum transactions.',\n        params: [\n            {\n                name: 'xts',\n                type: 'Vec<Extrinsic>'\n            }\n        ],\n        type: 'Vec<TransactionV2>'\n    },\n    gas_price: {\n        description: 'Returns FixedGasPrice::min_gas_price',\n        params: [],\n        type: 'u256'\n    },\n    storage_at: {\n        description: 'For a given account address and index, returns pallet_evm::AccountStorages.',\n        params: [\n            {\n                name: 'address',\n                type: 'H160'\n            },\n            {\n                name: 'index',\n                type: 'u256'\n            }\n        ],\n        type: 'H256'\n    }\n};\nconst ethMethodsV5 = {\n    call: {\n        description: 'Returns a frame_ethereum::call response. If `estimate` is true,',\n        params: [\n            {\n                name: 'from',\n                type: 'H160'\n            },\n            {\n                name: 'to',\n                type: 'H160'\n            },\n            {\n                name: 'data',\n                type: 'Vec<u8>'\n            },\n            {\n                name: 'value',\n                type: 'U256'\n            },\n            {\n                name: 'gasLimit',\n                type: 'U256'\n            },\n            {\n                name: 'maxFeePerGas',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'maxPriorityFeePerGas',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'nonce',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'estimate',\n                type: 'bool'\n            },\n            {\n                name: 'accessList',\n                type: 'Option<Vec<(H160, Vec<H256>)>>'\n            }\n        ],\n        type: 'Result<EvmCallInfoV2, DispatchError>'\n    },\n    create: {\n        description: 'Returns a frame_ethereum::call response. If `estimate` is true,',\n        params: [\n            {\n                name: 'from',\n                type: 'H160'\n            },\n            {\n                name: 'data',\n                type: 'Vec<u8>'\n            },\n            {\n                name: 'value',\n                type: 'U256'\n            },\n            {\n                name: 'gasLimit',\n                type: 'U256'\n            },\n            {\n                name: 'maxFeePerGas',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'maxPriorityFeePerGas',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'nonce',\n                type: 'Option<U256>'\n            },\n            {\n                name: 'estimate',\n                type: 'bool'\n            },\n            {\n                name: 'accessList',\n                type: 'Option<Vec<(H160, Vec<H256>)>>'\n            }\n        ],\n        type: 'Result<EvmCreateInfoV2, DispatchError>'\n    }\n};\nexport const runtime = {\n    ConvertTransactionRuntimeApi: [\n        {\n            methods: {\n                convert_transaction: {\n                    description: 'Converts an Ethereum-style transaction to Extrinsic',\n                    params: [\n                        {\n                            name: 'transaction',\n                            type: 'TransactionV2'\n                        }\n                    ],\n                    type: 'Extrinsic'\n                }\n            },\n            version: 2\n        }\n    ],\n    DebugRuntimeApi: [\n        {\n            methods: {\n                trace_block: {\n                    description: 'Trace all block extrinsics',\n                    params: [\n                        {\n                            name: 'extrinsics',\n                            type: 'Vec<Extrinsic>'\n                        },\n                        {\n                            name: 'knownTransactions',\n                            type: 'Vec<H256>'\n                        }\n                    ],\n                    type: 'Result<(), DispatchError>'\n                },\n                trace_transaction: {\n                    description: 'Trace transaction extrinsics',\n                    params: [\n                        {\n                            name: 'extrinsics',\n                            type: 'Vec<Extrinsic>'\n                        },\n                        {\n                            name: 'transaction',\n                            type: 'EthTransaction'\n                        }\n                    ],\n                    type: 'Result<(), DispatchError>'\n                }\n            },\n            version: 4\n        }\n    ],\n    EthereumRuntimeRPCApi: [\n        {\n            methods: {\n                ...ethMethodsV4\n            },\n            version: 4\n        },\n        {\n            methods: {\n                ...ethMethodsV4,\n                ...ethMethodsV5\n            },\n            version: 5\n        }\n    ]\n};\n","import { rpc } from './rpc.js';\nimport { runtime } from './runtime.js';\nconst V0 = {\n    BlockV0: {\n        header: 'EthHeader',\n        transactions: 'Vec<TransactionV0>',\n        ommers: 'Vec<EthHeader>'\n    },\n    LegacyTransaction: {\n        nonce: 'U256',\n        gasPrice: 'U256',\n        gasLimit: 'U256',\n        action: 'EthTransactionAction',\n        value: 'U256',\n        input: 'Bytes',\n        signature: 'EthTransactionSignature'\n    },\n    TransactionV0: 'LegacyTransaction'\n};\nconst V1 = {\n    BlockV1: {\n        header: 'EthHeader',\n        transactions: 'Vec<TransactionV1>',\n        ommers: 'Vec<EthHeader>'\n    },\n    EIP2930Transaction: {\n        chainId: 'u64',\n        nonce: 'U256',\n        gasPrice: 'U256',\n        gasLimit: 'U256',\n        action: 'EthTransactionAction',\n        value: 'U256',\n        input: 'Bytes',\n        accessList: 'EthAccessList',\n        oddYParity: 'bool',\n        r: 'H256',\n        s: 'H256'\n    },\n    TransactionV1: {\n        _enum: {\n            Legacy: 'LegacyTransaction',\n            EIP2930: 'EIP2930Transaction'\n        }\n    }\n};\nconst V2 = {\n    BlockV2: {\n        header: 'EthHeader',\n        transactions: 'Vec<TransactionV2>',\n        ommers: 'Vec<EthHeader>'\n    },\n    EIP1559Transaction: {\n        chainId: 'u64',\n        nonce: 'U256',\n        maxPriorityFeePerGas: 'U256',\n        maxFeePerGas: 'U256',\n        gasLimit: 'U256',\n        action: 'EthTransactionAction',\n        value: 'U256',\n        input: 'Bytes',\n        accessList: 'EthAccessList',\n        oddYParity: 'bool',\n        r: 'H256',\n        s: 'H256'\n    },\n    TransactionV2: {\n        _enum: {\n            Legacy: 'LegacyTransaction',\n            EIP2930: 'EIP2930Transaction',\n            EIP1559: 'EIP1559Transaction'\n        }\n    }\n};\nconst types = {\n    ...V0,\n    ...V1,\n    ...V2,\n    EthereumAccountId: 'GenericEthereumAccountId',\n    EthereumAddress: 'GenericEthereumAccountId',\n    EthereumLookupSource: 'GenericEthereumLookupSource',\n    EthereumSignature: '[u8; 65]',\n    EthAccessListItem: {\n        address: 'EthAddress',\n        slots: 'Vec<H256>'\n    },\n    EthAccessList: 'Vec<EthAccessListItem>',\n    EthAccount: {\n        address: 'EthAddress',\n        balance: 'U256',\n        nonce: 'U256',\n        codeHash: 'H256',\n        storageHash: 'H256',\n        accountProof: 'Vec<Bytes>',\n        storageProof: 'Vec<EthStorageProof>'\n    },\n    EthAddress: 'H160',\n    EthBlock: {\n        header: 'EthHeader',\n        transactions: 'Vec<EthTransaction>',\n        ommers: 'Vec<EthHeader>'\n    },\n    EthHeader: {\n        parentHash: 'H256',\n        ommersHash: 'H256',\n        beneficiary: 'EthAddress',\n        stateRoot: 'H256',\n        transactionsRoot: 'H256',\n        receiptsRoot: 'H256',\n        logsBloom: 'EthBloom',\n        difficulty: 'U256',\n        number: 'U256',\n        gasLimit: 'U256',\n        gasUsed: 'U256',\n        timestamp: 'u64',\n        extraData: 'Bytes',\n        mixMash: 'H256',\n        nonce: 'H64'\n    },\n    EthRichBlock: {\n        _alias: {\n            blockHash: 'hash',\n            blockSize: 'size'\n        },\n        blockHash: 'Option<H256>',\n        parentHash: 'H256',\n        sha3Uncles: 'H256',\n        author: 'EthAddress',\n        miner: 'EthAddress',\n        stateRoot: 'H256',\n        transactionsRoot: 'H256',\n        receiptsRoot: 'H256',\n        number: 'Option<U256>',\n        gasUsed: 'U256',\n        gasLimit: 'U256',\n        extraData: 'Bytes',\n        logsBloom: 'EthBloom',\n        timestamp: 'U256',\n        difficulty: 'U256',\n        totalDifficulty: 'Option<U256>',\n        sealFields: 'Vec<Bytes>',\n        uncles: 'Vec<H256>',\n        transactions: 'Vec<EthTransaction>',\n        blockSize: 'Option<U256>'\n    },\n    EthBloom: 'H2048',\n    EthCallRequest: {\n        from: 'Option<EthAddress>',\n        to: 'Option<EthAddress>',\n        gasPrice: 'Option<U256>',\n        gas: 'Option<U256>',\n        value: 'Option<U256>',\n        data: 'Option<Bytes>',\n        nonce: 'Option<U256>'\n    },\n    EthFeeHistory: {\n        oldestBlock: 'U256',\n        baseFeePerGas: 'Vec<U256>',\n        gasUsedRatio: 'Vec<f64>',\n        reward: 'Option<Vec<Vec<U256>>>'\n    },\n    EthFilter: {\n        fromBlock: 'Option<BlockNumber>',\n        toBlock: 'Option<BlockNumber>',\n        blockHash: 'Option<H256>',\n        address: 'Option<EthFilterAddress>',\n        topics: 'Option<EthFilterTopic>'\n    },\n    EthFilterAddress: {\n        _enum: {\n            Single: 'EthAddress',\n            Multiple: 'Vec<EthAddress>',\n            Null: 'Null'\n        }\n    },\n    EthFilterChanges: {\n        _enum: {\n            Logs: 'Vec<EthLog>',\n            Hashes: 'Vec<H256>',\n            Empty: 'Null'\n        }\n    },\n    EthFilterTopic: {\n        _enum: {\n            Single: 'EthFilterTopicInner',\n            Multiple: 'Vec<EthFilterTopicInner>',\n            Null: 'Null'\n        }\n    },\n    EthFilterTopicEntry: 'Option<H256>',\n    EthFilterTopicInner: {\n        _enum: {\n            Single: 'EthFilterTopicEntry',\n            Multiple: 'Vec<EthFilterTopicEntry>',\n            Null: 'Null'\n        }\n    },\n    EthRichHeader: {\n        _alias: {\n            blockHash: 'hash',\n            blockSize: 'size'\n        },\n        blockHash: 'Option<H256>',\n        parentHash: 'H256',\n        sha3Uncles: 'H256',\n        author: 'EthAddress',\n        miner: 'EthAddress',\n        stateRoot: 'H256',\n        transactionsRoot: 'H256',\n        receiptsRoot: 'H256',\n        number: 'Option<U256>',\n        gasUsed: 'U256',\n        gasLimit: 'U256',\n        extraData: 'Bytes',\n        logsBloom: 'EthBloom',\n        timestamp: 'U256',\n        difficulty: 'U256',\n        sealFields: 'Vec<Bytes>',\n        blockSize: 'Option<U256>'\n    },\n    EthLog: {\n        address: 'EthAddress',\n        topics: 'Vec<H256>',\n        data: 'Bytes',\n        blockHash: 'Option<H256>',\n        blockNumber: 'Option<U256>',\n        transactionHash: 'Option<H256>',\n        transactionIndex: 'Option<U256>',\n        logIndex: 'Option<U256>',\n        transactionLogIndex: 'Option<U256>',\n        removed: 'bool'\n    },\n    EthReceipt: {\n        transactionHash: 'Option<H256>',\n        transactionIndex: 'Option<U256>',\n        blockHash: 'Option<H256>',\n        from: 'Option<EthAddress>',\n        to: 'Option<EthAddress>',\n        blockNumber: 'Option<U256>',\n        cumulativeGasUsed: 'U256',\n        gasUsed: 'Option<U256>',\n        contractAddress: 'Option<EthAddress>',\n        logs: 'Vec<EthLog>',\n        root: 'Option<H256>',\n        logsBloom: 'EthBloom',\n        statusCode: 'Option<U64>'\n    },\n    // not convinced, however the original commit matches, so... (maybe V3 is incorrect?)\n    EthReceiptV0: 'EthReceipt',\n    EthReceiptV3: 'EthReceipt',\n    EthStorageProof: {\n        key: 'U256',\n        value: 'U256',\n        proof: 'Vec<Bytes>'\n    },\n    EthSubKind: {\n        _enum: ['newHeads', 'logs', 'newPendingTransactions', 'syncing']\n    },\n    EthSubParams: {\n        _enum: {\n            None: 'Null',\n            Logs: 'EthFilter'\n        }\n    },\n    EthSubResult: {\n        _enum: {\n            Header: 'EthRichHeader',\n            Log: 'EthLog',\n            TransactionHash: 'H256',\n            SyncState: 'EthSyncStatus'\n        }\n    },\n    EthSyncInfo: {\n        startingBlock: 'U256',\n        currentBlock: 'U256',\n        highestBlock: 'U256',\n        warpChunksAmount: 'Option<U256>',\n        warpChunksProcessed: 'Option<U256>'\n    },\n    EthSyncStatus: {\n        _enum: {\n            Info: 'EthSyncInfo',\n            None: 'Null'\n        }\n    },\n    EthTransaction: {\n        hash: 'H256',\n        nonce: 'U256',\n        blockHash: 'Option<H256>',\n        blockNumber: 'Option<U256>',\n        transactionIndex: 'Option<U256>',\n        from: 'H160',\n        to: 'Option<H160>',\n        value: 'U256',\n        gasPrice: 'Option<U256>',\n        maxFeePerGas: 'Option<U256>',\n        maxPriorityFeePerGas: 'Option<U256>',\n        gas: 'U256',\n        input: 'Bytes',\n        creates: 'Option<H160>',\n        raw: 'Bytes',\n        publicKey: 'Option<H512>',\n        chainId: 'Option<U64>',\n        standardV: 'U256',\n        v: 'U256',\n        r: 'U256',\n        s: 'U256',\n        accessList: 'Option<Vec<EthAccessListItem>>',\n        transactionType: 'Option<U256>'\n    },\n    EthTransactionSignature: {\n        v: 'u64',\n        r: 'H256',\n        s: 'H256'\n    },\n    EthTransactionAction: {\n        _enum: {\n            Call: 'H160',\n            Create: 'Null'\n        }\n    },\n    EthTransactionCondition: {\n        _enum: {\n            block: 'u64',\n            time: 'u64'\n        }\n    },\n    EthTransactionRequest: {\n        from: 'Option<EthAddress>',\n        to: 'Option<EthAddress>',\n        gasPrice: 'Option<U256>',\n        gas: 'Option<U256>',\n        value: 'Option<U256>',\n        data: 'Option<Bytes>',\n        nonce: 'Option<U256>'\n    },\n    EthTransactionStatus: {\n        transactionHash: 'H256',\n        transactionIndex: 'u32',\n        from: 'EthAddress',\n        to: 'Option<EthAddress>',\n        contractAddress: 'Option<EthAddress>',\n        logs: 'Vec<EthLog>',\n        logsBloom: 'EthBloom'\n    },\n    EthWork: {\n        powHash: 'H256',\n        seedHash: 'H256',\n        target: 'H256',\n        number: 'Option<u64>'\n    }\n};\nexport default { rpc, runtime, types };\n","const netRpc = {\n    listening: {\n        aliasSection: 'net',\n        description: 'Returns true if client is actively listening for network connections. Otherwise false.',\n        params: [],\n        type: 'bool'\n    },\n    peerCount: {\n        aliasSection: 'net',\n        description: 'Returns number of peers connected to node.',\n        params: [],\n        type: 'Text'\n    },\n    version: {\n        aliasSection: 'net',\n        description: 'Returns protocol version.',\n        params: [],\n        type: 'Text'\n    }\n};\nconst web3Rpc = {\n    clientVersion: {\n        aliasSection: 'web3',\n        description: 'Returns current client version.',\n        params: [],\n        type: 'Text'\n    },\n    sha3: {\n        aliasSection: 'web3',\n        description: 'Returns sha3 of the given data',\n        params: [{ name: 'data', type: 'Bytes' }],\n        type: 'H256'\n    }\n};\nexport const rpc = {\n    ...netRpc,\n    ...web3Rpc,\n    accounts: {\n        description: 'Returns accounts list.',\n        params: [],\n        type: 'Vec<H160>'\n    },\n    blockNumber: {\n        description: 'Returns the blockNumber',\n        params: [],\n        type: 'U256'\n    },\n    call: {\n        description: 'Call contract, returning the output data.',\n        params: [\n            {\n                name: 'request',\n                type: 'EthCallRequest'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'number',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'Bytes'\n    },\n    chainId: {\n        description: 'Returns the chain ID used for transaction signing at the current best block. None is returned if not available.',\n        params: [],\n        type: 'U64'\n    },\n    coinbase: {\n        description: 'Returns block author.',\n        params: [],\n        type: 'H160'\n    },\n    estimateGas: {\n        description: 'Estimate gas needed for execution of given contract.',\n        params: [\n            {\n                name: 'request',\n                type: 'EthCallRequest'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'number',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'U256'\n    },\n    feeHistory: {\n        description: 'Returns fee history for given block count & reward percentiles',\n        params: [\n            {\n                name: 'blockCount',\n                type: 'U256'\n            },\n            {\n                name: 'newestBlock',\n                type: 'BlockNumber'\n            },\n            {\n                name: 'rewardPercentiles',\n                type: 'Option<Vec<f64>>'\n            }\n        ],\n        type: 'EthFeeHistory'\n    },\n    gasPrice: {\n        description: 'Returns current gas price.',\n        params: [],\n        type: 'U256'\n    },\n    getBalance: {\n        description: 'Returns balance of the given account.',\n        params: [\n            {\n                name: 'address',\n                type: 'H160'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'number',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'U256'\n    },\n    getBlockByHash: {\n        description: 'Returns block with given hash.',\n        params: [\n            {\n                name: 'hash',\n                type: 'H256'\n            },\n            {\n                name: 'full',\n                type: 'bool'\n            }\n        ],\n        type: 'Option<EthRichBlock>'\n    },\n    getBlockByNumber: {\n        description: 'Returns block with given number.',\n        params: [\n            {\n                name: 'block',\n                type: 'BlockNumber'\n            },\n            { name: 'full', type: 'bool' }\n        ],\n        type: 'Option<EthRichBlock>'\n    },\n    getBlockTransactionCountByHash: {\n        description: 'Returns the number of transactions in a block with given hash.',\n        params: [\n            {\n                name: 'hash',\n                type: 'H256'\n            }\n        ],\n        type: 'U256'\n    },\n    getBlockTransactionCountByNumber: {\n        description: 'Returns the number of transactions in a block with given block number.',\n        params: [\n            {\n                name: 'block',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'U256'\n    },\n    getCode: {\n        description: 'Returns the code at given address at given time (block number).',\n        params: [\n            {\n                name: 'address',\n                type: 'H160'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'number',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'Bytes'\n    },\n    getFilterChanges: {\n        description: 'Returns filter changes since last poll.',\n        params: [\n            {\n                name: 'index',\n                type: 'U256'\n            }\n        ],\n        type: 'EthFilterChanges'\n    },\n    getFilterLogs: {\n        description: 'Returns all logs matching given filter (in a range \\'from\\' - \\'to\\').',\n        params: [\n            {\n                name: 'index',\n                type: 'U256'\n            }\n        ],\n        type: 'Vec<EthLog>'\n    },\n    getLogs: {\n        description: 'Returns logs matching given filter object.',\n        params: [\n            {\n                name: 'filter',\n                type: 'EthFilter'\n            }\n        ],\n        type: 'Vec<EthLog>'\n    },\n    getProof: {\n        description: 'Returns proof for account and storage.',\n        params: [\n            {\n                name: 'address',\n                type: 'H160'\n            },\n            {\n                name: 'storageKeys',\n                type: 'Vec<H256>'\n            },\n            {\n                name: 'number',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'EthAccount'\n    },\n    getStorageAt: {\n        description: 'Returns content of the storage at given address.',\n        params: [\n            {\n                name: 'address',\n                type: 'H160'\n            },\n            {\n                name: 'index',\n                type: 'U256'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'number',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'H256'\n    },\n    getTransactionByBlockHashAndIndex: {\n        description: 'Returns transaction at given block hash and index.',\n        params: [\n            {\n                name: 'hash',\n                type: 'H256'\n            },\n            {\n                name: 'index',\n                type: 'U256'\n            }\n        ],\n        type: 'EthTransaction'\n    },\n    getTransactionByBlockNumberAndIndex: {\n        description: 'Returns transaction by given block number and index.',\n        params: [\n            {\n                name: 'number',\n                type: 'BlockNumber'\n            },\n            {\n                name: 'index',\n                type: 'U256'\n            }\n        ],\n        type: 'EthTransaction'\n    },\n    getTransactionByHash: {\n        description: 'Get transaction by its hash.',\n        params: [\n            {\n                name: 'hash',\n                type: 'H256'\n            }\n        ],\n        type: 'EthTransaction'\n    },\n    getTransactionCount: {\n        description: 'Returns the number of transactions sent from given address at given time (block number).',\n        params: [\n            {\n                name: 'address',\n                type: 'H160'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'number',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'U256'\n    },\n    getTransactionReceipt: {\n        description: 'Returns transaction receipt by transaction hash.',\n        params: [\n            {\n                name: 'hash',\n                type: 'H256'\n            }\n        ],\n        type: 'EthReceipt'\n    },\n    getUncleByBlockHashAndIndex: {\n        description: 'Returns an uncles at given block and index.',\n        params: [\n            {\n                name: 'hash',\n                type: 'H256'\n            },\n            {\n                name: 'index',\n                type: 'U256'\n            }\n        ],\n        type: 'EthRichBlock'\n    },\n    getUncleByBlockNumberAndIndex: {\n        description: 'Returns an uncles at given block and index.',\n        params: [\n            {\n                name: 'number',\n                type: 'BlockNumber'\n            },\n            {\n                name: 'index',\n                type: 'U256'\n            }\n        ],\n        type: 'EthRichBlock'\n    },\n    getUncleCountByBlockHash: {\n        description: 'Returns the number of uncles in a block with given hash.',\n        params: [\n            {\n                name: 'hash',\n                type: 'H256'\n            }\n        ],\n        type: 'U256'\n    },\n    getUncleCountByBlockNumber: {\n        description: 'Returns the number of uncles in a block with given block number.',\n        params: [\n            {\n                name: 'number',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'U256'\n    },\n    getWork: {\n        description: 'Returns the hash of the current block, the seedHash, and the boundary condition to be met.',\n        params: [],\n        type: 'EthWork'\n    },\n    hashrate: {\n        description: 'Returns the number of hashes per second that the node is mining with.',\n        params: [],\n        type: 'U256'\n    },\n    maxPriorityFeePerGas: {\n        description: 'Returns max priority fee per gas',\n        params: [],\n        type: 'U256'\n    },\n    mining: {\n        description: 'Returns true if client is actively mining new blocks.',\n        params: [],\n        type: 'bool'\n    },\n    newBlockFilter: {\n        description: 'Returns id of new block filter.',\n        params: [],\n        type: 'U256'\n    },\n    newFilter: {\n        description: 'Returns id of new filter.',\n        params: [\n            {\n                name: 'filter',\n                type: 'EthFilter'\n            }\n        ],\n        type: 'U256'\n    },\n    newPendingTransactionFilter: {\n        description: 'Returns id of new block filter.',\n        params: [],\n        type: 'U256'\n    },\n    protocolVersion: {\n        description: 'Returns protocol version encoded as a string (quotes are necessary).',\n        params: [],\n        type: 'u64'\n    },\n    sendRawTransaction: {\n        description: 'Sends signed transaction, returning its hash.',\n        params: [\n            {\n                name: 'bytes',\n                type: 'Bytes'\n            }\n        ],\n        type: 'H256'\n    },\n    sendTransaction: {\n        description: 'Sends transaction; will block waiting for signer to return the transaction hash',\n        params: [\n            {\n                name: 'tx',\n                type: 'EthTransactionRequest'\n            }\n        ],\n        type: 'H256'\n    },\n    submitHashrate: {\n        description: 'Used for submitting mining hashrate.',\n        params: [\n            {\n                name: 'index',\n                type: 'U256'\n            },\n            {\n                name: 'hash',\n                type: 'H256'\n            }\n        ],\n        type: 'bool'\n    },\n    submitWork: {\n        description: 'Used for submitting a proof-of-work solution.',\n        params: [\n            {\n                name: 'nonce',\n                type: 'H64'\n            },\n            {\n                name: 'headerHash',\n                type: 'H256'\n            },\n            {\n                name: 'mixDigest',\n                type: 'H256'\n            }\n        ],\n        type: 'bool'\n    },\n    subscribe: {\n        description: 'Subscribe to Eth subscription.',\n        params: [\n            { name: 'kind', type: 'EthSubKind' },\n            {\n                isOptional: true,\n                name: 'params',\n                type: 'EthSubParams'\n            }\n        ],\n        pubsub: [\n            'subscription',\n            'subscribe',\n            'unsubscribe'\n        ],\n        type: 'Null'\n    },\n    syncing: {\n        description: 'Returns an object with data about the sync status or false.',\n        params: [],\n        type: 'EthSyncStatus'\n    },\n    uninstallFilter: {\n        description: 'Uninstalls filter.',\n        params: [\n            {\n                name: 'index',\n                type: 'U256'\n            }\n        ],\n        type: 'bool'\n    }\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {}\n};\n","export const runtime = {\n    // deprecated, the NimbusApi is current - this is for backwards compat\n    AuthorFilterAPI: [\n        {\n            methods: {\n                can_author: {\n                    description: 'The runtime api used to predict whether an author will be eligible in the given slot',\n                    params: [\n                        {\n                            name: 'author',\n                            type: 'AccountId'\n                        },\n                        {\n                            name: 'relayParent',\n                            type: 'u32'\n                        },\n                        {\n                            name: 'parentHeader',\n                            type: 'Header'\n                        }\n                    ],\n                    type: 'bool'\n                }\n            },\n            version: 2\n        },\n        {\n            methods: {\n                can_author: {\n                    description: 'The runtime api used to predict whether an author will be eligible in the given slot',\n                    params: [\n                        {\n                            name: 'author',\n                            type: 'AccountId'\n                        },\n                        {\n                            name: 'relayParent',\n                            type: 'u32'\n                        }\n                    ],\n                    type: 'bool'\n                }\n            },\n            version: 1\n        }\n    ],\n    NimbusApi: [\n        {\n            methods: {\n                can_author: {\n                    description: 'The runtime api used to predict whether a Nimbus author will be eligible in the given slot',\n                    params: [\n                        {\n                            name: 'author',\n                            type: 'AccountId'\n                        },\n                        {\n                            name: 'relayParent',\n                            type: 'u32'\n                        },\n                        {\n                            name: 'parentHeader',\n                            type: 'Header'\n                        }\n                    ],\n                    type: 'bool'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {}\n};\n","export const runtime = {\n    // https://github.com/open-web3-stack/open-runtime-module-library/blob/b57f88b39cd547e2fb51727d8bb9bcc64fddf8b5/oracle/rpc/runtime-api/src/lib.rs#L12-L21\n    OracleApi: [\n        {\n            methods: {\n                get_all_values: {\n                    description: 'Retrieves all values',\n                    params: [\n                        {\n                            name: 'providerId',\n                            // This is a Codec type\n                            type: 'Raw'\n                        }\n                    ],\n                    // This won't actually work as expected - since we have\n                    // no information about the actual Raw sizes, we cannot\n                    // handle it in this format (it would need an override\n                    // for the specific Codec). So return the Raw value.\n                    // type: 'Vec<(Raw, Option<Raw>)>'\n                    type: 'Raw'\n                },\n                get_value: {\n                    description: 'Retrieves a single value',\n                    params: [\n                        {\n                            name: 'providerId',\n                            // This is a Codec type\n                            type: 'Raw'\n                        },\n                        {\n                            name: 'key',\n                            // This is a Codec type\n                            type: 'Raw'\n                        }\n                    ],\n                    // This is an Option<Codec> type\n                    type: 'Option<Raw>'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","import { runtime } from './runtime.js';\nexport default {\n    rpc: {},\n    runtime,\n    types: {}\n};\n","export const runtime = {\n    // https://github.com/open-web3-stack/open-runtime-module-library/blob/b57f88b39cd547e2fb51727d8bb9bcc64fddf8b5/tokens/rpc/runtime-api/src/lib.rs#L11-L18\n    TokensApi: [\n        {\n            methods: {\n                query_existential_deposit: {\n                    description: 'Query the existential amount for a specific currency',\n                    params: [\n                        {\n                            name: 'currencyId',\n                            // This is CurrencyId, as per the return value, we are unsure\n                            // if this is specialized and/or global to the chain or not\n                            type: 'Raw'\n                        }\n                    ],\n                    // This is Balance - since we don't understand enough about the way\n                    // in which this is used, we default to u128 here (it certainly could\n                    // be a specialized type that doesn't map to the on-chain Balance)\n                    type: 'u128'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","import { rpc } from './rpc.js';\nexport default {\n    rpc,\n    types: {\n        RpcMethods: {\n            version: 'u32',\n            methods: 'Vec<Text>'\n        }\n    }\n};\n","export const rpc = {\n    methods: {\n        description: 'Retrieves the list of RPC methods that are exposed by the node',\n        params: [],\n        type: 'RpcMethods'\n    }\n};\n","import { rpc } from './rpc.js';\nexport default {\n    rpc,\n    types: {\n        ExtrinsicOrHash: {\n            _enum: {\n                Hash: 'Hash',\n                Extrinsic: 'Bytes'\n            }\n        },\n        ExtrinsicStatus: {\n            _enum: {\n                Future: 'Null',\n                Ready: 'Null',\n                Broadcast: 'Vec<Text>',\n                InBlock: 'Hash',\n                Retracted: 'Hash',\n                FinalityTimeout: 'Hash',\n                Finalized: 'Hash',\n                Usurped: 'Hash',\n                Dropped: 'Null',\n                Invalid: 'Null'\n            }\n        }\n    }\n};\n","export const rpc = {\n    hasKey: {\n        description: 'Returns true if the keystore has private keys for the given public key and key type.',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'publicKey',\n                type: 'Bytes'\n            },\n            {\n                name: 'keyType',\n                type: 'Text'\n            }\n        ],\n        type: 'bool'\n    },\n    hasSessionKeys: {\n        description: 'Returns true if the keystore has private keys for the given session public keys.',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'sessionKeys',\n                type: 'Bytes'\n            }\n        ],\n        type: 'bool'\n    },\n    insertKey: {\n        description: 'Insert a key into the keystore.',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'keyType',\n                type: 'Text'\n            },\n            {\n                name: 'suri',\n                type: 'Text'\n            },\n            {\n                name: 'publicKey',\n                type: 'Bytes'\n            }\n        ],\n        type: 'Bytes'\n    },\n    pendingExtrinsics: {\n        description: 'Returns all pending extrinsics, potentially grouped by sender',\n        params: [],\n        type: 'Vec<Extrinsic>'\n    },\n    removeExtrinsic: {\n        description: 'Remove given extrinsic from the pool and temporarily ban it to prevent reimporting',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'bytesOrHash',\n                type: 'Vec<ExtrinsicOrHash>'\n            }\n        ],\n        type: 'Vec<Hash>'\n    },\n    rotateKeys: {\n        description: 'Generate new session keys and returns the corresponding public keys',\n        isUnsafe: true,\n        params: [],\n        type: 'Bytes'\n    },\n    submitAndWatchExtrinsic: {\n        description: 'Submit and subscribe to watch an extrinsic until unsubscribed',\n        isSigned: true,\n        params: [\n            {\n                name: 'extrinsic',\n                type: 'Extrinsic'\n            }\n        ],\n        pubsub: [\n            'extrinsicUpdate',\n            'submitAndWatchExtrinsic',\n            'unwatchExtrinsic'\n        ],\n        type: 'ExtrinsicStatus'\n    },\n    submitExtrinsic: {\n        description: 'Submit a fully formatted extrinsic for block inclusion',\n        isSigned: true,\n        params: [\n            {\n                name: 'extrinsic',\n                type: 'Extrinsic'\n            }\n        ],\n        type: 'Hash'\n    }\n};\n","import { rpc } from './rpc.js';\nexport default {\n    rpc,\n    types: {\n        BlockHash: 'Hash'\n    }\n};\n","export const rpc = {\n    getBlock: {\n        description: 'Get header and body of a relay chain block',\n        params: [\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'hash',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'SignedBlock'\n    },\n    getBlockHash: {\n        description: 'Get the block hash for a specific block',\n        params: [\n            {\n                isOptional: true,\n                name: 'blockNumber',\n                type: 'BlockNumber'\n            }\n        ],\n        type: 'BlockHash'\n    },\n    getFinalizedHead: {\n        alias: ['chain_getFinalisedHead'],\n        description: 'Get hash of the last finalized block in the canon chain',\n        params: [],\n        type: 'BlockHash'\n    },\n    getHeader: {\n        alias: ['chain_getHead'],\n        description: 'Retrieves the header for a specific block',\n        params: [\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'hash',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Header'\n    },\n    subscribeAllHeads: {\n        description: 'Retrieves the newest header via subscription',\n        params: [],\n        pubsub: [\n            'allHead',\n            'subscribeAllHeads',\n            'unsubscribeAllHeads'\n        ],\n        type: 'Header'\n    },\n    subscribeFinalizedHeads: {\n        alias: ['chain_subscribeFinalisedHeads', 'chain_unsubscribeFinalisedHeads'],\n        description: 'Retrieves the best finalized header via subscription',\n        params: [],\n        pubsub: [\n            'finalizedHead',\n            'subscribeFinalizedHeads',\n            'unsubscribeFinalizedHeads'\n        ],\n        type: 'Header'\n    },\n    subscribeNewHeads: {\n        alias: ['chain_unsubscribeNewHeads', 'subscribe_newHead', 'unsubscribe_newHead'],\n        description: 'Retrieves the best header via subscription',\n        params: [],\n        // NOTE These still has the aliassed version, compatible with 1.x\n        pubsub: [\n            'newHead',\n            'subscribeNewHead',\n            'unsubscribeNewHead'\n        ],\n        type: 'Header'\n    }\n};\n","import { rpc } from './rpc.js';\nexport default {\n    rpc,\n    types: {\n        // StorageKey extends Bytes\n        PrefixedStorageKey: 'StorageKey'\n    }\n};\n","export const rpc = {\n    getKeys: {\n        description: 'Returns the keys with prefix from a child storage, leave empty to get all the keys',\n        params: [\n            {\n                name: 'childKey',\n                type: 'PrefixedStorageKey'\n            },\n            {\n                name: 'prefix',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'Hash'\n            }\n        ],\n        type: 'Vec<StorageKey>'\n    },\n    getKeysPaged: {\n        alias: ['childstate_getKeysPagedAt'],\n        description: 'Returns the keys with prefix from a child storage with pagination support',\n        params: [\n            {\n                name: 'childKey',\n                type: 'PrefixedStorageKey'\n            },\n            {\n                name: 'prefix',\n                type: 'StorageKey'\n            },\n            {\n                name: 'count',\n                type: 'u32'\n            },\n            {\n                isOptional: true,\n                name: 'startKey',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'Hash'\n            }\n        ],\n        type: 'Vec<StorageKey>'\n    },\n    getStorage: {\n        description: 'Returns a child storage entry at a specific block state',\n        params: [\n            {\n                name: 'childKey',\n                type: 'PrefixedStorageKey'\n            },\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'Hash'\n            }\n        ],\n        type: 'Option<StorageData>'\n    },\n    getStorageEntries: {\n        description: 'Returns child storage entries for multiple keys at a specific block state',\n        params: [\n            {\n                name: 'childKey',\n                type: 'PrefixedStorageKey'\n            },\n            {\n                name: 'keys',\n                type: 'Vec<StorageKey>'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'Hash'\n            }\n        ],\n        type: 'Vec<Option<StorageData>>'\n    },\n    getStorageHash: {\n        description: 'Returns the hash of a child storage entry at a block state',\n        params: [\n            {\n                name: 'childKey',\n                type: 'PrefixedStorageKey'\n            },\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'Hash'\n            }\n        ],\n        type: 'Option<Hash>'\n    },\n    getStorageSize: {\n        description: 'Returns the size of a child storage entry at a block state',\n        params: [\n            {\n                name: 'childKey',\n                type: 'PrefixedStorageKey'\n            },\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'Hash'\n            }\n        ],\n        type: 'Option<u64>'\n    }\n};\n","import { rpc } from './rpc.js';\nimport { runtime } from './runtime.js';\nexport default {\n    rpc,\n    runtime,\n    types: {\n        StorageKind: {\n            _enum: {\n                PERSISTENT: 1,\n                LOCAL: 2\n            }\n        }\n    }\n};\n","export const rpc = {\n    localStorageGet: {\n        description: 'Get offchain local storage under given key and prefix',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'kind',\n                type: 'StorageKind'\n            },\n            {\n                name: 'key',\n                type: 'Bytes'\n            }\n        ],\n        type: 'Option<Bytes>'\n    },\n    localStorageSet: {\n        description: 'Set offchain local storage under given key and prefix',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'kind',\n                type: 'StorageKind'\n            },\n            {\n                name: 'key',\n                type: 'Bytes'\n            },\n            {\n                name: 'value',\n                type: 'Bytes'\n            }\n        ],\n        type: 'Null'\n    }\n};\n","export const runtime = {\n    OffchainWorkerApi: [\n        {\n            methods: {\n                offchain_worker: {\n                    description: 'Starts the off-chain task for given block header.',\n                    params: [\n                        {\n                            name: 'header',\n                            type: 'Header'\n                        }\n                    ],\n                    type: 'Null'\n                }\n            },\n            version: 2\n        },\n        {\n            methods: {\n                offchain_worker: {\n                    description: 'Starts the off-chain task for given block header.',\n                    params: [\n                        {\n                            name: 'number',\n                            type: 'BlockNumber'\n                        }\n                    ],\n                    type: 'Null'\n                }\n            },\n            version: 1\n        }\n    ]\n};\n","const V1_TO_V4_SHARED_PAY = {\n    query_fee_details: {\n        description: 'The transaction fee details',\n        params: [\n            {\n                name: 'uxt',\n                type: 'Extrinsic'\n            },\n            {\n                name: 'len',\n                type: 'u32'\n            }\n        ],\n        type: 'FeeDetails'\n    }\n};\nconst V1_TO_V3_SHARED_CALL = {\n    query_call_fee_details: {\n        description: 'The call fee details',\n        params: [\n            {\n                name: 'call',\n                type: 'Call'\n            },\n            {\n                name: 'len',\n                type: 'u32'\n            }\n        ],\n        type: 'FeeDetails'\n    }\n};\nconst V2_TO_V4_SHARED_PAY = {\n    query_info: {\n        description: 'The transaction info',\n        params: [\n            {\n                name: 'uxt',\n                type: 'Extrinsic'\n            },\n            {\n                name: 'len',\n                type: 'u32'\n            }\n        ],\n        type: 'RuntimeDispatchInfo'\n    }\n};\nconst V2_V3_SHARED_CALL = {\n    query_call_info: {\n        description: 'The call info',\n        params: [\n            {\n                name: 'call',\n                type: 'Call'\n            },\n            {\n                name: 'len',\n                type: 'u32'\n            }\n        ],\n        type: 'RuntimeDispatchInfo'\n    }\n};\nconst V3_SHARED_PAY_CALL = {\n    query_length_to_fee: {\n        description: 'Query the output of the current LengthToFee given some input',\n        params: [\n            {\n                name: 'length',\n                type: 'u32'\n            }\n        ],\n        type: 'Balance'\n    },\n    query_weight_to_fee: {\n        description: 'Query the output of the current WeightToFee given some input',\n        params: [\n            {\n                name: 'weight',\n                type: 'Weight'\n            }\n        ],\n        type: 'Balance'\n    }\n};\nexport const runtime = {\n    TransactionPaymentApi: [\n        {\n            // V4 is equivalent to V3 (V4 just dropped all V1 references)\n            methods: {\n                ...V3_SHARED_PAY_CALL,\n                ...V2_TO_V4_SHARED_PAY,\n                ...V1_TO_V4_SHARED_PAY\n            },\n            version: 4\n        },\n        {\n            methods: {\n                ...V3_SHARED_PAY_CALL,\n                ...V2_TO_V4_SHARED_PAY,\n                ...V1_TO_V4_SHARED_PAY\n            },\n            version: 3\n        },\n        {\n            methods: {\n                ...V2_TO_V4_SHARED_PAY,\n                ...V1_TO_V4_SHARED_PAY\n            },\n            version: 2\n        },\n        {\n            methods: {\n                query_info: {\n                    description: 'The transaction info',\n                    params: [\n                        {\n                            name: 'uxt',\n                            type: 'Extrinsic'\n                        },\n                        {\n                            name: 'len',\n                            type: 'u32'\n                        }\n                    ],\n                    // NOTE: _Should_ be V1 (as per current Substrate), however the interface was\n                    // changed mid-flight between versions. So we have some of each depending on\n                    // runtime. (We do detect the weight type, so correct)\n                    type: 'RuntimeDispatchInfo'\n                },\n                ...V1_TO_V4_SHARED_PAY\n            },\n            version: 1\n        }\n    ],\n    TransactionPaymentCallApi: [\n        {\n            methods: {\n                ...V3_SHARED_PAY_CALL,\n                ...V2_V3_SHARED_CALL,\n                ...V1_TO_V3_SHARED_CALL\n            },\n            version: 3\n        },\n        {\n            methods: {\n                ...V2_V3_SHARED_CALL,\n                ...V1_TO_V3_SHARED_CALL\n            },\n            version: 2\n        },\n        {\n            methods: {\n                CALL: {\n                    description: 'The call info',\n                    params: [\n                        {\n                            name: 'call',\n                            type: 'Call'\n                        },\n                        {\n                            name: 'len',\n                            type: 'u32'\n                        }\n                    ],\n                    // NOTE: As per the above comment, the below is correct according to Substrate, but\n                    // _may_ yield fallback decoding on some versions of the runtime\n                    type: 'RuntimeDispatchInfo'\n                },\n                ...V1_TO_V3_SHARED_CALL\n            },\n            version: 1\n        }\n    ]\n};\n","import { rpc } from './rpc.js';\nimport { runtime } from './runtime.js';\nexport default {\n    rpc,\n    runtime,\n    types: {\n        FeeDetails: {\n            inclusionFee: 'Option<InclusionFee>'\n            // skipped in serde\n            // tip: 'Balance'\n        },\n        InclusionFee: {\n            baseFee: 'Balance',\n            lenFee: 'Balance',\n            adjustedWeightFee: 'Balance'\n        },\n        RuntimeDispatchInfo: {\n            weight: 'Weight',\n            class: 'DispatchClass',\n            partialFee: 'Balance'\n        },\n        RuntimeDispatchInfoV1: {\n            weight: 'WeightV1',\n            class: 'DispatchClass',\n            partialFee: 'Balance'\n        },\n        RuntimeDispatchInfoV2: {\n            weight: 'WeightV2',\n            class: 'DispatchClass',\n            partialFee: 'Balance'\n        }\n    }\n};\n","export const rpc = {\n    queryFeeDetails: {\n        // NOTE: Not deprecated (yet) in Substrate, but it is the intent to do so\n        deprecated: 'Use `api.call.transactionPaymentApi.queryFeeDetails` instead',\n        description: 'Query the detailed fee of a given encoded extrinsic',\n        params: [\n            {\n                name: 'extrinsic',\n                type: 'Bytes'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'FeeDetails'\n    },\n    queryInfo: {\n        // NOTE: Not deprecated (yet) in Substrate, but it is the intent to do so\n        deprecated: 'Use `api.call.transactionPaymentApi.queryInfo` instead',\n        description: 'Retrieves the fee information for an encoded extrinsic',\n        params: [\n            {\n                name: 'extrinsic',\n                type: 'Bytes'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        // NOTE: Stuck on V1 forever (at least for the time being)\n        type: 'RuntimeDispatchInfoV1'\n    }\n};\n","import { rpc } from './rpc.js';\nexport default {\n    rpc,\n    types: {\n        ApiId: '[u8; 8]',\n        BlockTrace: {\n            blockHash: 'Text',\n            parentHash: 'Text',\n            tracingTargets: 'Text',\n            storageKeys: 'Text',\n            spans: 'Vec<BlockTraceSpan>',\n            events: 'Vec<BlockTraceEvent>'\n        },\n        BlockTraceEvent: {\n            target: 'Text',\n            data: 'BlockTraceEventData',\n            parentId: 'Option<u64>'\n        },\n        BlockTraceEventData: {\n            stringValues: 'HashMap<Text, Text>'\n        },\n        BlockTraceSpan: {\n            id: 'u64',\n            parentId: 'Option<u64>',\n            name: 'Text',\n            target: 'Text',\n            wasm: 'bool'\n        },\n        KeyValueOption: '(StorageKey, Option<StorageData>)',\n        MigrationStatusResult: {\n            topRemainingToMigrate: 'u64',\n            childRemainingToMigrate: 'u64'\n        },\n        ReadProof: {\n            at: 'Hash',\n            proof: 'Vec<Bytes>'\n        },\n        RuntimeVersionApi: '(ApiId, u32)',\n        RuntimeVersion: {\n            specName: 'Text',\n            implName: 'Text',\n            authoringVersion: 'u32',\n            specVersion: 'u32',\n            implVersion: 'u32',\n            apis: 'Vec<RuntimeVersionApi>',\n            transactionVersion: 'u32',\n            stateVersion: 'u8'\n        },\n        RuntimeVersionPre4: {\n            specName: 'Text',\n            implName: 'Text',\n            authoringVersion: 'u32',\n            specVersion: 'u32',\n            implVersion: 'u32',\n            apis: 'Vec<RuntimeVersionApi>',\n            transactionVersion: 'u32'\n        },\n        RuntimeVersionPre3: {\n            specName: 'Text',\n            implName: 'Text',\n            authoringVersion: 'u32',\n            specVersion: 'u32',\n            implVersion: 'u32',\n            apis: 'Vec<RuntimeVersionApi>'\n        },\n        RuntimeVersionPartial: {\n            specName: 'Text',\n            specVersion: 'u32',\n            apis: 'Vec<RuntimeVersionApi>'\n        },\n        SpecVersion: 'u32',\n        StorageChangeSet: {\n            block: 'Hash',\n            changes: 'Vec<KeyValueOption>'\n        },\n        TraceBlockResponse: {\n            _enum: {\n                TraceError: 'TraceError',\n                BlockTrace: 'BlockTrace'\n            }\n        },\n        TraceError: {\n            error: 'Text'\n        }\n    }\n};\n","export const rpc = {\n    call: {\n        alias: ['state_callAt'],\n        description: 'Perform a call to a builtin on the chain',\n        params: [\n            {\n                name: 'method',\n                type: 'Text'\n            },\n            {\n                name: 'data',\n                type: 'Bytes'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Bytes'\n    },\n    getChildKeys: {\n        description: 'Retrieves the keys with prefix of a specific child storage',\n        params: [\n            {\n                name: 'childStorageKey',\n                type: 'StorageKey'\n            },\n            {\n                name: 'childDefinition',\n                type: 'StorageKey'\n            },\n            {\n                name: 'childType',\n                type: 'u32'\n            },\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Vec<StorageKey>'\n    },\n    getChildReadProof: {\n        description: 'Returns proof of storage for child key entries at a specific block state.',\n        params: [\n            {\n                name: 'childStorageKey',\n                type: 'PrefixedStorageKey'\n            },\n            {\n                name: 'keys',\n                type: 'Vec<StorageKey>'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'ReadProof'\n    },\n    getChildStorage: {\n        description: 'Retrieves the child storage for a key',\n        params: [\n            {\n                name: 'childStorageKey',\n                type: 'StorageKey'\n            },\n            {\n                name: 'childDefinition',\n                type: 'StorageKey'\n            },\n            {\n                name: 'childType',\n                type: 'u32'\n            },\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'StorageData'\n    },\n    getChildStorageHash: {\n        description: 'Retrieves the child storage hash',\n        params: [\n            {\n                name: 'childStorageKey',\n                type: 'StorageKey'\n            },\n            {\n                name: 'childDefinition',\n                type: 'StorageKey'\n            },\n            {\n                name: 'childType',\n                type: 'u32'\n            },\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Hash'\n    },\n    getChildStorageSize: {\n        description: 'Retrieves the child storage size',\n        params: [\n            {\n                name: 'childStorageKey',\n                type: 'StorageKey'\n            },\n            {\n                name: 'childDefinition',\n                type: 'StorageKey'\n            },\n            {\n                name: 'childType',\n                type: 'u32'\n            },\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'u64'\n    },\n    getKeys: {\n        deprecated: 'Use `api.rpc.state.getKeysPaged` to retrieve keys',\n        description: 'Retrieves the keys with a certain prefix',\n        params: [\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Vec<StorageKey>'\n    },\n    getKeysPaged: {\n        alias: ['state_getKeysPagedAt'],\n        description: 'Returns the keys with prefix with pagination support.',\n        params: [\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                name: 'count',\n                type: 'u32'\n            },\n            {\n                isOptional: true,\n                name: 'startKey',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Vec<StorageKey>'\n    },\n    getMetadata: {\n        description: 'Returns the runtime metadata',\n        params: [\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Metadata'\n    },\n    getPairs: {\n        deprecated: 'Use `api.rpc.state.getKeysPaged` to retrieve keys',\n        description: 'Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged)',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'prefix',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Vec<KeyValue>'\n    },\n    getReadProof: {\n        description: 'Returns proof of storage entries at a specific block state',\n        params: [\n            {\n                name: 'keys',\n                type: 'Vec<StorageKey>'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'ReadProof'\n    },\n    getRuntimeVersion: {\n        alias: ['chain_getRuntimeVersion'],\n        description: 'Get the runtime version',\n        params: [\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'RuntimeVersion'\n    },\n    getStorage: {\n        alias: ['state_getStorageAt'],\n        description: 'Retrieves the storage for a key',\n        params: [\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'StorageData'\n    },\n    getStorageHash: {\n        alias: ['state_getStorageHashAt'],\n        description: 'Retrieves the storage hash',\n        params: [\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Hash'\n    },\n    getStorageSize: {\n        alias: ['state_getStorageSizeAt'],\n        description: 'Retrieves the storage size',\n        params: [\n            {\n                name: 'key',\n                type: 'StorageKey'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'u64'\n    },\n    queryStorage: {\n        description: 'Query historical storage entries (by key) starting from a start block',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'keys',\n                type: 'Vec<StorageKey>'\n            },\n            {\n                name: 'fromBlock',\n                type: 'Hash'\n            },\n            {\n                isOptional: true,\n                name: 'toBlock',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Vec<StorageChangeSet>'\n    },\n    queryStorageAt: {\n        description: 'Query storage entries (by key) starting at block hash given as the second parameter',\n        params: [\n            {\n                name: 'keys',\n                type: 'Vec<StorageKey>'\n            },\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'Vec<StorageChangeSet>'\n    },\n    subscribeRuntimeVersion: {\n        alias: ['chain_subscribeRuntimeVersion', 'chain_unsubscribeRuntimeVersion'],\n        description: 'Retrieves the runtime version via subscription',\n        params: [],\n        pubsub: [\n            'runtimeVersion',\n            'subscribeRuntimeVersion',\n            'unsubscribeRuntimeVersion'\n        ],\n        type: 'RuntimeVersion'\n    },\n    subscribeStorage: {\n        description: 'Subscribes to storage changes for the provided keys',\n        // NOTE Just marking it here to follow the logic - this is unsafe when no\n        // keys are provided (i.e. subscribing to all), generally this is used\n        // extensively with normal subscriptions\n        // isUnsafe: true,\n        params: [\n            {\n                isOptional: true,\n                name: 'keys',\n                type: 'Vec<StorageKey>'\n            }\n        ],\n        pubsub: [\n            'storage',\n            'subscribeStorage',\n            'unsubscribeStorage'\n        ],\n        type: 'StorageChangeSet'\n    },\n    traceBlock: {\n        description: 'Provides a way to trace the re-execution of a single block',\n        isUnsafe: true,\n        params: [\n            {\n                name: 'block',\n                type: 'Hash'\n            },\n            {\n                name: 'targets',\n                type: 'Option<Text>'\n            },\n            {\n                name: 'storageKeys',\n                type: 'Option<Text>'\n            },\n            {\n                name: 'methods',\n                type: 'Option<Text>'\n            }\n        ],\n        type: 'TraceBlockResponse'\n    },\n    trieMigrationStatus: {\n        description: 'Check current migration state',\n        isUnsafe: true,\n        params: [\n            {\n                isHistoric: true,\n                isOptional: true,\n                name: 'at',\n                type: 'BlockHash'\n            }\n        ],\n        type: 'MigrationStatusResult'\n    }\n};\n","import { lazyMethod } from '@polkadot/util';\nexport function lazyVariants(lookup, { type }, getName, creator) {\n    const result = {};\n    const variants = lookup.getSiType(type).def.asVariant.variants;\n    for (let i = 0, count = variants.length; i < count; i++) {\n        lazyMethod(result, variants[i], creator, getName, i);\n    }\n    return result;\n}\n","import { stringCamelCase } from '@polkadot/util';\nfunction convert(fn) {\n    return ({ name }) => fn(name);\n}\nexport const objectNameToCamel = /*#__PURE__*/ convert(stringCamelCase);\nexport const objectNameToString = /*#__PURE__*/ convert((n) => n.toString());\n","import { lazyMethod, objectSpread, stringCamelCase } from '@polkadot/util';\nimport { lazyVariants } from '../../../create/lazy.js';\nimport { getSiName } from '../../util/index.js';\nimport { objectNameToCamel } from '../util.js';\nimport { createUnchecked } from './createUnchecked.js';\nexport function filterCallsSome({ calls }) {\n    return calls.isSome;\n}\nexport function createCallFunction(registry, lookup, variant, sectionName, sectionIndex) {\n    const { fields, index } = variant;\n    const count = fields.length;\n    const args = new Array(count);\n    for (let i = 0; i < count; i++) {\n        const { name, type, typeName } = fields[i];\n        args[i] = objectSpread({\n            name: stringCamelCase(name.unwrapOr(`param${i}`)),\n            type: getSiName(lookup, type)\n        }, typeName.isSome\n            ? { typeName: typeName.unwrap() }\n            : null);\n    }\n    return createUnchecked(registry, sectionName, new Uint8Array([sectionIndex, index.toNumber()]), registry.createTypeUnsafe('FunctionMetadataLatest', [objectSpread({ args }, variant)]));\n}\n/** @internal */\nexport function decorateExtrinsics(registry, { lookup, pallets }, version) {\n    const result = {};\n    const filtered = pallets.filter(filterCallsSome);\n    for (let i = 0, count = filtered.length; i < count; i++) {\n        const { calls, index, name } = filtered[i];\n        const sectionName = stringCamelCase(name);\n        const sectionIndex = version >= 12 ? index.toNumber() : i;\n        lazyMethod(result, sectionName, () => lazyVariants(lookup, calls.unwrap(), objectNameToCamel, (variant) => createCallFunction(registry, lookup, variant, sectionName, sectionIndex)));\n    }\n    return result;\n}\n","import { stringCamelCase } from '@polkadot/util';\nfunction isTx(tx, callIndex) {\n    return tx.callIndex[0] === callIndex[0] && tx.callIndex[1] === callIndex[1];\n}\n/** @internal */\nexport function createUnchecked(registry, section, callIndex, callMetadata) {\n    const expectedArgs = callMetadata.fields;\n    const funcName = stringCamelCase(callMetadata.name);\n    const extrinsicFn = (...args) => {\n        if (expectedArgs.length !== args.length) {\n            throw new Error(`Extrinsic ${section}.${funcName} expects ${expectedArgs.length} arguments, got ${args.length}.`);\n        }\n        return registry.createTypeUnsafe('Call', [{ args, callIndex }, callMetadata]);\n    };\n    extrinsicFn.is = (tx) => isTx(tx, callIndex);\n    extrinsicFn.callIndex = callIndex;\n    extrinsicFn.meta = callMetadata;\n    extrinsicFn.method = funcName;\n    extrinsicFn.section = section;\n    extrinsicFn.toJSON = () => callMetadata.toJSON();\n    return extrinsicFn;\n}\n","import { isCodec, isU8a, lazyMethod, objectSpread, stringCamelCase } from '@polkadot/util';\nimport { lazyVariants } from '../../../create/lazy.js';\nimport { objectNameToString } from '../util.js';\nexport function variantToMeta(lookup, variant) {\n    return objectSpread({ args: variant.fields.map(({ type }) => lookup.getTypeDef(type).type) }, variant);\n}\n/** @internal */\nexport function decorateErrors(registry, { lookup, pallets }, version) {\n    const result = {};\n    for (let i = 0, count = pallets.length; i < count; i++) {\n        const { errors, index, name } = pallets[i];\n        if (errors.isSome) {\n            const sectionIndex = version >= 12 ? index.toNumber() : i;\n            lazyMethod(result, stringCamelCase(name), () => lazyVariants(lookup, errors.unwrap(), objectNameToString, (variant) => ({\n                // We sprinkle in isCodec & isU8a to ensure we are dealing with the correct objects\n                is: (errorMod) => isCodec(errorMod) &&\n                    isCodec(errorMod.index) &&\n                    errorMod.index.eq(sectionIndex) && (isU8a(errorMod.error)\n                    ? errorMod.error[0] === variant.index.toNumber()\n                    : isCodec(errorMod.error) && errorMod.error.eq(variant.index)),\n                meta: registry.createTypeUnsafe('ErrorMetadataLatest', [variantToMeta(lookup, variant)])\n            })));\n        }\n    }\n    return result;\n}\n","import { isCodec, isU8a, lazyMethod, stringCamelCase } from '@polkadot/util';\nimport { lazyVariants } from '../../../create/lazy.js';\nimport { variantToMeta } from '../errors/index.js';\nimport { objectNameToString } from '../util.js';\nexport function filterEventsSome({ events }) {\n    return events.isSome;\n}\n/** @internal */\nexport function decorateEvents(registry, { lookup, pallets }, version) {\n    const result = {};\n    const filtered = pallets.filter(filterEventsSome);\n    for (let i = 0, count = filtered.length; i < count; i++) {\n        const { events, index, name } = filtered[i];\n        const sectionIndex = version >= 12 ? index.toNumber() : i;\n        lazyMethod(result, stringCamelCase(name), () => lazyVariants(lookup, events.unwrap(), objectNameToString, (variant) => ({\n            // We sprinkle in isCodec & isU8a to ensure we are dealing with the correct objects\n            is: (eventRecord) => isCodec(eventRecord) &&\n                isU8a(eventRecord.index) &&\n                sectionIndex === eventRecord.index[0] &&\n                variant.index.eq(eventRecord.index[1]),\n            meta: registry.createTypeUnsafe('EventMetadataLatest', [variantToMeta(lookup, variant)])\n        })));\n    }\n    return result;\n}\n","import { hexToU8a, lazyMethod, lazyMethods, stringCamelCase } from '@polkadot/util';\nimport { objectNameToCamel } from '../util.js';\n/** @internal */\nexport function decorateConstants(registry, { pallets }, _version) {\n    const result = {};\n    for (let i = 0, count = pallets.length; i < count; i++) {\n        const { constants, name } = pallets[i];\n        if (!constants.isEmpty) {\n            lazyMethod(result, stringCamelCase(name), () => lazyMethods({}, constants, (constant) => {\n                const codec = registry.createTypeUnsafe(registry.createLookupType(constant.type), [hexToU8a(constant.value.toHex())]);\n                // We are casting here since we are assigning to a read-only property\n                codec.meta = constant;\n                return codec;\n            }, objectNameToCamel));\n        }\n    }\n    return result;\n}\n","import { objectSpread } from '@polkadot/util';\nfunction trimDocs(docs) {\n    const strings = docs.map((d) => d.toString().trim());\n    const firstEmpty = strings.findIndex((d) => !d.length);\n    return firstEmpty === -1\n        ? strings\n        : strings.slice(0, firstEmpty);\n}\n/** @internal */\nexport function toCallsOnly(registry, { extrinsic, lookup, pallets }) {\n    return registry.createTypeUnsafe('MetadataLatest', [{\n            extrinsic,\n            lookup: {\n                types: lookup.types.map(({ id, type }) => registry.createTypeUnsafe('PortableType', [{\n                        id,\n                        type: objectSpread({}, type, { docs: trimDocs(type.docs) })\n                    }]))\n            },\n            pallets: pallets.map(({ calls, index, name }) => ({\n                calls: registry.createTypeUnsafe('Option<PalletCallMetadataLatest>', [calls.unwrapOr(null)]),\n                index,\n                name\n            }))\n        }]).toJSON();\n}\n","/** @internal */\nexport function flattenUniq(list, result = []) {\n    for (let i = 0, count = list.length; i < count; i++) {\n        const entry = list[i];\n        if (Array.isArray(entry)) {\n            flattenUniq(entry, result);\n        }\n        else {\n            result.push(entry);\n        }\n    }\n    return [...new Set(result)];\n}\n","import { getTypeDef, TypeDefInfo } from '@polkadot/types-create';\nfunction extractSubSingle(_, { sub }) {\n    const { lookupName, type } = sub;\n    return extractTypes([lookupName || type]);\n}\nfunction extractSubArray(_, { sub }) {\n    return extractTypes(sub.map(({ lookupName, type }) => lookupName || type));\n}\nfunction unhandled(type, { info }) {\n    throw new Error(`Unhandled: Unable to create and validate type from ${type} (info=${TypeDefInfo[info]})`);\n}\nconst mapping = {\n    [TypeDefInfo.BTreeMap]: extractSubArray,\n    [TypeDefInfo.BTreeSet]: extractSubSingle,\n    [TypeDefInfo.Compact]: extractSubSingle,\n    [TypeDefInfo.DoNotConstruct]: unhandled,\n    [TypeDefInfo.Enum]: extractSubArray,\n    [TypeDefInfo.HashMap]: extractSubArray,\n    [TypeDefInfo.Int]: unhandled,\n    [TypeDefInfo.Linkage]: extractSubSingle,\n    [TypeDefInfo.Null]: unhandled,\n    [TypeDefInfo.Option]: extractSubSingle,\n    [TypeDefInfo.Plain]: (_, typeDef) => typeDef.lookupName || typeDef.type,\n    [TypeDefInfo.Range]: extractSubSingle,\n    [TypeDefInfo.RangeInclusive]: extractSubSingle,\n    [TypeDefInfo.Result]: extractSubArray,\n    [TypeDefInfo.Set]: extractSubArray,\n    [TypeDefInfo.Si]: unhandled,\n    [TypeDefInfo.Struct]: extractSubArray,\n    [TypeDefInfo.Tuple]: extractSubArray,\n    [TypeDefInfo.UInt]: unhandled,\n    [TypeDefInfo.Vec]: extractSubSingle,\n    [TypeDefInfo.VecFixed]: extractSubSingle,\n    [TypeDefInfo.WrapperKeepOpaque]: extractSubSingle,\n    [TypeDefInfo.WrapperOpaque]: extractSubSingle\n};\n/** @internal */\nexport function extractTypes(types) {\n    const count = types.length;\n    const result = new Array(count);\n    for (let i = 0; i < count; i++) {\n        const type = types[i];\n        const typeDef = getTypeDef(type);\n        result[i] = mapping[typeDef.info](type, typeDef);\n    }\n    return result;\n}\n","import { logger } from '@polkadot/util';\nimport { extractTypes } from './extractTypes.js';\nimport { flattenUniq } from './flattenUniq.js';\nconst l = logger('metadata');\n/** @internal */\nexport function validateTypes(registry, throwError, types) {\n    const missing = flattenUniq(extractTypes(types))\n        .filter((type) => !registry.hasType(type) &&\n        !registry.isLookupType(type))\n        .sort();\n    if (missing.length !== 0) {\n        const message = `Unknown types found, no types for ${missing.join(', ')}`;\n        if (throwError) {\n            throw new Error(message);\n        }\n        else {\n            l.warn(message);\n        }\n    }\n    return types;\n}\n","import { flattenUniq } from './flattenUniq.js';\nimport { validateTypes } from './validateTypes.js';\n/** @internal */\nfunction extractTypes(lookup, types) {\n    return types.map(({ type }) => lookup.getTypeDef(type).type);\n}\n/** @internal */\nfunction extractFieldTypes(lookup, type) {\n    return lookup.getSiType(type).def.asVariant.variants.map(({ fields }) => extractTypes(lookup, fields));\n}\n/** @internal */\nfunction getPalletNames({ lookup, pallets }) {\n    return pallets.reduce((all, { calls, constants, events, storage }) => {\n        all.push([extractTypes(lookup, constants)]);\n        if (calls.isSome) {\n            all.push(extractFieldTypes(lookup, calls.unwrap().type));\n        }\n        if (events.isSome) {\n            all.push(extractFieldTypes(lookup, events.unwrap().type));\n        }\n        if (storage.isSome) {\n            all.push(storage.unwrap().items.map(({ type }) => {\n                if (type.isPlain) {\n                    return [lookup.getTypeDef(type.asPlain).type];\n                }\n                const { hashers, key, value } = type.asMap;\n                return hashers.length === 1\n                    ? [\n                        lookup.getTypeDef(value).type,\n                        lookup.getTypeDef(key).type\n                    ]\n                    : [\n                        lookup.getTypeDef(value).type,\n                        ...lookup.getSiType(key).def.asTuple.map((t) => lookup.getTypeDef(t).type)\n                    ];\n            }));\n        }\n        return all;\n    }, []);\n}\n/** @internal */\nexport function getUniqTypes(registry, meta, throwError) {\n    return validateTypes(registry, throwError, flattenUniq(getPalletNames(meta)));\n}\n","import { objectSpread } from '@polkadot/util';\n/** @internal */\nfunction createStorageHasher(registry, hasher) {\n    // Blake2_128_Concat has been added at index 2, so we increment all the\n    // indexes greater than 2\n    if (hasher.toNumber() >= 2) {\n        return registry.createTypeUnsafe('StorageHasherV10', [hasher.toNumber() + 1]);\n    }\n    return registry.createTypeUnsafe('StorageHasherV10', [hasher]);\n}\n/** @internal */\nfunction createStorageType(registry, entryType) {\n    if (entryType.isMap) {\n        return [objectSpread({}, entryType.asMap, {\n                hasher: createStorageHasher(registry, entryType.asMap.hasher)\n            }), 1];\n    }\n    if (entryType.isDoubleMap) {\n        return [objectSpread({}, entryType.asDoubleMap, {\n                hasher: createStorageHasher(registry, entryType.asDoubleMap.hasher),\n                key2Hasher: createStorageHasher(registry, entryType.asDoubleMap.key2Hasher)\n            }), 2];\n    }\n    return [entryType.asPlain, 0];\n}\n/** @internal */\nfunction convertModule(registry, mod) {\n    const storage = mod.storage.unwrapOr(null);\n    return registry.createTypeUnsafe('ModuleMetadataV10', [objectSpread({}, mod, {\n            storage: storage\n                ? objectSpread({}, storage, {\n                    items: storage.items.map((item) => objectSpread({}, item, {\n                        type: registry.createTypeUnsafe('StorageEntryTypeV10', createStorageType(registry, item.type))\n                    }))\n                })\n                : null\n        })]);\n}\n/** @internal */\nexport function toV10(registry, { modules }) {\n    return registry.createTypeUnsafe('MetadataV10', [{\n            modules: modules.map((mod) => convertModule(registry, mod))\n        }]);\n}\n","/** @internal */\nexport function toV11(registry, { modules }) {\n    return registry.createTypeUnsafe('MetadataV11', [{\n            // This is new in V11, pass V0 here - something non-existing, telling the API to use\n            // the fallback for this information (on-chain detection)\n            extrinsic: {\n                signedExtensions: [],\n                version: 0\n            },\n            modules\n        }]);\n}\n","import { objectSpread } from '@polkadot/util';\n/**\n * @internal\n **/\nexport function toV12(registry, { extrinsic, modules }) {\n    return registry.createTypeUnsafe('MetadataV12', [{\n            extrinsic,\n            modules: modules.map((mod) => registry.createTypeUnsafe('ModuleMetadataV12', [objectSpread({}, mod, { index: 255 })]))\n        }]);\n}\n","/**\n * @internal\n **/\nexport function toV13(registry, v12) {\n    return registry.createTypeUnsafe('MetadataV13', [v12]);\n}\n","const typesAlias = {\n    assets: {\n        Approval: 'AssetApproval',\n        ApprovalKey: 'AssetApprovalKey',\n        Balance: 'TAssetBalance',\n        DestroyWitness: 'AssetDestroyWitness'\n    },\n    babe: {\n        EquivocationProof: 'BabeEquivocationProof'\n    },\n    balances: {\n        Status: 'BalanceStatus'\n    },\n    beefy: {\n        AuthorityId: 'BeefyId'\n    },\n    contracts: {\n        StorageKey: 'ContractStorageKey'\n    },\n    electionProviderMultiPhase: {\n        Phase: 'ElectionPhase'\n    },\n    ethereum: {\n        Block: 'EthBlock',\n        Header: 'EthHeader',\n        Receipt: 'EthReceipt',\n        Transaction: 'EthTransaction',\n        TransactionStatus: 'EthTransactionStatus'\n    },\n    evm: {\n        Account: 'EvmAccount',\n        Log: 'EvmLog',\n        Vicinity: 'EvmVicinity'\n    },\n    grandpa: {\n        Equivocation: 'GrandpaEquivocation',\n        EquivocationProof: 'GrandpaEquivocationProof'\n    },\n    identity: {\n        Judgement: 'IdentityJudgement'\n    },\n    inclusion: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    paraDisputes: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    paraInclusion: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    paraScheduler: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    paraShared: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    parachains: {\n        Id: 'ParaId'\n    },\n    parasDisputes: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    parasInclusion: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    parasScheduler: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    parasShared: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    proposeParachain: {\n        Proposal: 'ParachainProposal'\n    },\n    proxy: {\n        Announcement: 'ProxyAnnouncement'\n    },\n    scheduler: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    shared: {\n        ValidatorIndex: 'ParaValidatorIndex'\n    },\n    society: {\n        Judgement: 'SocietyJudgement',\n        Vote: 'SocietyVote'\n    },\n    staking: {\n        Compact: 'CompactAssignments'\n    },\n    treasury: {\n        Proposal: 'TreasuryProposal'\n    },\n    xcm: {\n        AssetId: 'XcmAssetId'\n    },\n    xcmPallet: {\n        AssetId: 'XcmAssetId'\n    }\n};\n/**\n * @description Get types for specific modules (metadata override)\n */\nexport function getAliasTypes({ knownTypes }, section) {\n    return {\n        ...(typesAlias[section] ?? {}),\n        ...(knownTypes.typesAlias?.[section] ?? {})\n    };\n}\n","import { stringCamelCase } from '@polkadot/util';\nimport { getAliasTypes } from '../../interfaces/alias.js';\nimport { knownOrigins } from '../../interfaces/runtime/definitions.js';\nconst BOXES = [['<', '>'], ['<', ','], [',', '>'], ['(', ')'], ['(', ','], [',', ','], [',', ')']];\n/**\n * Creates a compatible type mapping\n * @internal\n **/\nfunction compatType(specs, _type) {\n    const type = _type.toString();\n    const index = specs.findIndex(({ def }) => def.HistoricMetaCompat === type);\n    if (index !== -1) {\n        return index;\n    }\n    return specs.push({\n        def: {\n            HistoricMetaCompat: type\n        }\n    }) - 1;\n}\nfunction compatTypes(specs, ...types) {\n    for (let i = 0, count = types.length; i < count; i++) {\n        compatType(specs, types[i]);\n    }\n}\nfunction makeTupleType(specs, entries) {\n    return specs.push({\n        def: {\n            Tuple: entries\n        }\n    }) - 1;\n}\nfunction makeVariantType(modName, variantType, specs, variants) {\n    return specs.push({\n        def: {\n            Variant: { variants }\n        },\n        path: [`pallet_${modName.toString()}`, 'pallet', variantType]\n    }) - 1;\n}\n/**\n * @internal\n * generate & register the OriginCaller type\n **/\nfunction registerOriginCaller(registry, modules, metaVersion) {\n    registry.register({\n        OriginCaller: {\n            _enum: modules\n                .map((mod, index) => [\n                mod.name.toString(),\n                metaVersion >= 12\n                    ? mod.index.toNumber()\n                    : index\n            ])\n                .sort((a, b) => a[1] - b[1])\n                .reduce((result, [name, index]) => {\n                for (let i = Object.keys(result).length; i < index; i++) {\n                    result[`Empty${i}`] = 'Null';\n                }\n                result[name] = knownOrigins[name] || 'Null';\n                return result;\n            }, {})\n        }\n    });\n}\n/**\n * Find and apply the correct type override\n * @internal\n **/\nfunction setTypeOverride(sectionTypes, types) {\n    types.forEach((type) => {\n        const override = Object.keys(sectionTypes).find((aliased) => type.eq(aliased));\n        if (override) {\n            type.setOverride(sectionTypes[override]);\n        }\n        else {\n            // FIXME: NOT happy with this approach, but gets over the initial hump cased by (Vec<Announcement>,BalanceOf)\n            const orig = type.toString();\n            const alias = Object\n                .entries(sectionTypes)\n                .reduce((result, [src, dst]) => BOXES.reduce((result, [a, z]) => result.replace(`${a}${src}${z}`, `${a}${dst}${z}`), result), orig);\n            if (orig !== alias) {\n                type.setOverride(alias);\n            }\n        }\n    });\n}\n/**\n * Apply module-specific type overrides (always be done as part of toV14)\n * @internal\n **/\nfunction convertCalls(specs, registry, modName, calls, sectionTypes) {\n    const variants = calls.map(({ args, docs, name }, index) => {\n        setTypeOverride(sectionTypes, args.map(({ type }) => type));\n        return registry.createTypeUnsafe('SiVariant', [{\n                docs,\n                fields: args.map(({ name, type }) => registry.createTypeUnsafe('SiField', [{ name, type: compatType(specs, type) }])),\n                index,\n                name\n            }]);\n    });\n    return registry.createTypeUnsafe('PalletCallMetadataV14', [{\n            type: makeVariantType(modName, 'Call', specs, variants)\n        }]);\n}\n/**\n * Apply module-specific type overrides (always be done as part of toV14)\n * @internal\n */\nfunction convertConstants(specs, registry, constants, sectionTypes) {\n    return constants.map(({ docs, name, type, value }) => {\n        setTypeOverride(sectionTypes, [type]);\n        return registry.createTypeUnsafe('PalletConstantMetadataV14', [{\n                docs,\n                name,\n                type: compatType(specs, type),\n                value\n            }]);\n    });\n}\n/**\n * Apply module-specific type overrides (always be done as part of toV14)\n * @internal\n */\nfunction convertErrors(specs, registry, modName, errors, _sectionTypes) {\n    const variants = errors.map(({ docs, name }, index) => registry.createTypeUnsafe('SiVariant', [{\n            docs,\n            fields: [],\n            index,\n            name\n        }]));\n    return registry.createTypeUnsafe('PalletErrorMetadataV14', [{\n            type: makeVariantType(modName, 'Error', specs, variants)\n        }]);\n}\n/**\n * Apply module-specific type overrides (always be done as part of toV14)\n * @internal\n **/\nfunction convertEvents(specs, registry, modName, events, sectionTypes) {\n    const variants = events.map(({ args, docs, name }, index) => {\n        setTypeOverride(sectionTypes, args);\n        return registry.createTypeUnsafe('SiVariant', [{\n                docs,\n                fields: args.map((t) => registry.createTypeUnsafe('SiField', [{ type: compatType(specs, t) }])),\n                index,\n                name\n            }]);\n    });\n    return registry.createTypeUnsafe('PalletEventMetadataV14', [{\n            type: makeVariantType(modName, 'Event', specs, variants)\n        }]);\n}\nfunction createMapEntry(specs, registry, sectionTypes, { hashers, isLinked, isOptional, keys, value }) {\n    setTypeOverride(sectionTypes, [value, ...(Array.isArray(keys) ? keys : [keys])]);\n    return registry.createTypeUnsafe('StorageEntryTypeV14', [{\n            Map: {\n                hashers,\n                key: hashers.length === 1\n                    ? compatType(specs, keys[0])\n                    : makeTupleType(specs, keys.map((t) => compatType(specs, t))),\n                value: isLinked\n                    // For previous-generation linked-map support, the actual storage result\n                    // is a Tuple with the value and the Linkage (Option appears in teh value-part only)\n                    ? compatType(specs, `(${isOptional ? `Option<${value.toString()}>` : value.toString()}, Linkage<${keys[0].toString()}>)`)\n                    : compatType(specs, value)\n            }\n        }]);\n}\n/**\n * Apply module-specific storage type overrides (always part of toV14)\n * @internal\n **/\nfunction convertStorage(specs, registry, { items, prefix }, sectionTypes) {\n    return registry.createTypeUnsafe('PalletStorageMetadataV14', [{\n            items: items.map(({ docs, fallback, modifier, name, type }) => {\n                let entryType;\n                if (type.isPlain) {\n                    const plain = type.asPlain;\n                    setTypeOverride(sectionTypes, [plain]);\n                    entryType = registry.createTypeUnsafe('StorageEntryTypeV14', [{\n                            Plain: compatType(specs, plain)\n                        }]);\n                }\n                else if (type.isMap) {\n                    const map = type.asMap;\n                    entryType = createMapEntry(specs, registry, sectionTypes, {\n                        hashers: [map.hasher],\n                        isLinked: map.linked.isTrue,\n                        isOptional: modifier.isOptional,\n                        keys: [map.key],\n                        value: map.value\n                    });\n                }\n                else if (type.isDoubleMap) {\n                    const dm = type.asDoubleMap;\n                    entryType = createMapEntry(specs, registry, sectionTypes, {\n                        hashers: [dm.hasher, dm.key2Hasher],\n                        isLinked: false,\n                        isOptional: modifier.isOptional,\n                        keys: [dm.key1, dm.key2],\n                        value: dm.value\n                    });\n                }\n                else {\n                    const nm = type.asNMap;\n                    entryType = createMapEntry(specs, registry, sectionTypes, {\n                        hashers: nm.hashers,\n                        isLinked: false,\n                        isOptional: modifier.isOptional,\n                        keys: nm.keyVec,\n                        value: nm.value\n                    });\n                }\n                return registry.createTypeUnsafe('StorageEntryMetadataV14', [{\n                        docs,\n                        fallback,\n                        modifier,\n                        name,\n                        type: entryType\n                    }]);\n            }),\n            prefix\n        }]);\n}\n/** @internal */\nfunction convertExtrinsic(registry, { signedExtensions, version }) {\n    return registry.createTypeUnsafe('ExtrinsicMetadataV14', [{\n            signedExtensions: signedExtensions.map((identifier) => ({\n                identifier,\n                type: 0 // we don't map the fields at all\n            })),\n            type: 0,\n            version\n        }]);\n}\n/** @internal */\nfunction createPallet(specs, registry, mod, { calls, constants, errors, events, storage }) {\n    const sectionTypes = getAliasTypes(registry, stringCamelCase(mod.name));\n    return registry.createTypeUnsafe('PalletMetadataV14', [{\n            calls: calls && convertCalls(specs, registry, mod.name, calls, sectionTypes),\n            constants: convertConstants(specs, registry, constants, sectionTypes),\n            errors: errors && convertErrors(specs, registry, mod.name, errors, sectionTypes),\n            events: events && convertEvents(specs, registry, mod.name, events, sectionTypes),\n            index: mod.index,\n            name: mod.name,\n            storage: storage && convertStorage(specs, registry, storage, sectionTypes)\n        }]);\n}\n/**\n * Convert the Metadata to v14\n * @internal\n **/\nexport function toV14(registry, v13, metaVersion) {\n    const specs = [];\n    // position 0 always has Null, additionally add internal defaults\n    compatTypes(specs, 'Null', 'u8', 'u16', 'u32', 'u64');\n    registerOriginCaller(registry, v13.modules, metaVersion);\n    const extrinsic = convertExtrinsic(registry, v13.extrinsic);\n    const pallets = v13.modules.map((mod) => createPallet(specs, registry, mod, {\n        calls: mod.calls.unwrapOr(null),\n        constants: mod.constants,\n        errors: mod.errors.length ? mod.errors : null,\n        events: mod.events.unwrapOr(null),\n        storage: mod.storage.unwrapOr(null)\n    }));\n    return registry.createTypeUnsafe('MetadataV14', [{\n            extrinsic,\n            lookup: {\n                types: specs.map((type, id) => registry.createTypeUnsafe('PortableType', [{ id, type }]))\n            },\n            pallets\n        }]);\n}\n","import { objectSpread } from '@polkadot/util';\n/**\n * Convert the Metadata to v15\n * @internal\n **/\nexport function toV15(registry, v14, _) {\n    // V15 is mostly equivalent to v14 however it does add\n    //\n    // 1. The top-level apis entry - it is assumed that in usage we would\n    //    just check for all-empty (like this would construct)\n    // 2. A docs param on the pallet itself\n    // 3. Additional extrinsic parameters\n    //\n    // A straight conversion with createTypeUndafe magic fills in details\n    // We need the UncheckedExtrinsic to extract the types, at least for v14\n    // which does have these details embedded (previous-gen won't populate)\n    const unchecked = v14.lookup.paramTypes.SpRuntimeUncheckedExtrinsic;\n    return registry.createTypeUnsafe('MetadataV15', [\n        objectSpread({}, v14, {\n            extrinsic: registry.createTypeUnsafe('ExtrinsicMetadataV15', [\n                objectSpread({}, v14.extrinsic, {\n                    addressType: unchecked?.[0].type.unwrapOr(0),\n                    callType: unchecked?.[1].type.unwrapOr(0),\n                    extraType: unchecked?.[3].type.unwrapOr(0),\n                    signatureType: unchecked?.[2].type.unwrapOr(0)\n                })\n            ]),\n            outerEnums: registry.createTypeUnsafe('OuterEnums15', [{\n                    // FIXME We need to extract & add the errorType in here\n                    // (these doesn't seem to be an esay way to detect & extract it)\n                    callType: unchecked?.[1].type.unwrapOr(0),\n                    eventType: v14.lookup.paramTypes.FrameSystemEventRecord?.[0].type.unwrapOr(0)\n                }])\n        })\n    ]);\n}\n","/**\n * Convert the Metadata (which is an alias) to latest\n * @internal\n **/\nexport function toLatest(_registry, v15, _metaVersion) {\n    return v15;\n}\n","import { U32 } from '@polkadot/types-codec';\nexport const MAGIC_NUMBER = 0x6174656d; // `meta`, reversed for Little Endian encoding\nexport class MagicNumber extends U32 {\n    constructor(registry, value) {\n        super(registry, value);\n        if (!this.isEmpty && !this.eq(MAGIC_NUMBER)) {\n            throw new Error(`MagicNumber mismatch: expected ${registry.createTypeUnsafe('u32', [MAGIC_NUMBER]).toHex()}, found ${this.toHex()}`);\n        }\n    }\n}\n","import { Struct } from '@polkadot/types-codec';\nimport { getUniqTypes, toCallsOnly } from './util/index.js';\nimport { toV10 } from './v9/toV10.js';\nimport { toV11 } from './v10/toV11.js';\nimport { toV12 } from './v11/toV12.js';\nimport { toV13 } from './v12/toV13.js';\nimport { toV14 } from './v13/toV14.js';\nimport { toV15 } from './v14/toV15.js';\nimport { toLatest } from './v15/toLatest.js';\nimport { MagicNumber } from './MagicNumber.js';\nimport { LATEST_VERSION, TO_CALLS_VERSION } from './versions.js';\n/**\n * @name MetadataVersioned\n * @description\n * The versioned runtime metadata as a decoded structure\n */\nexport class MetadataVersioned extends Struct {\n    constructor(registry, value) {\n        // const timeStart = performance.now()\n        super(registry, {\n            magicNumber: MagicNumber,\n            metadata: 'MetadataAll'\n        }, value);\n        this.__internal__converted = new Map();\n        this.__internal__assertVersion = (version) => {\n            if (this.version > version) {\n                throw new Error(`Cannot convert metadata from version ${this.version} to ${version}`);\n            }\n            return this.version === version;\n        };\n        this.__internal__getVersion = (version, fromPrev) => {\n            if (version !== 'latest' && this.__internal__assertVersion(version)) {\n                const asCurr = `asV${version}`;\n                return this.__internal__metadata()[asCurr];\n            }\n            if (!this.__internal__converted.has(version)) {\n                const asPrev = version === 'latest'\n                    ? `asV${LATEST_VERSION}`\n                    : `asV${(version - 1)}`;\n                this.__internal__converted.set(version, fromPrev(this.registry, this[asPrev], this.version));\n            }\n            return this.__internal__converted.get(version);\n        };\n        /**\n         * @description the metadata wrapped\n         */\n        this.__internal__metadata = () => {\n            return this.getT('metadata');\n        };\n        // console.log('MetadataVersioned', `${(performance.now() - timeStart).toFixed(2)}ms`)\n    }\n    /**\n     * @description Returns the wrapped metadata as a limited calls-only (latest) version\n     */\n    get asCallsOnly() {\n        return new MetadataVersioned(this.registry, {\n            magicNumber: this.magicNumber,\n            metadata: this.registry.createTypeUnsafe('MetadataAll', [toCallsOnly(this.registry, this.asLatest), TO_CALLS_VERSION])\n        });\n    }\n    /**\n     * @description Returns the wrapped metadata as a V9 object\n     */\n    get asV9() {\n        this.__internal__assertVersion(9);\n        return this.__internal__metadata().asV9;\n    }\n    /**\n     * @description Returns the wrapped values as a V10 object\n     */\n    get asV10() {\n        return this.__internal__getVersion(10, toV10);\n    }\n    /**\n     * @description Returns the wrapped values as a V11 object\n     */\n    get asV11() {\n        return this.__internal__getVersion(11, toV11);\n    }\n    /**\n     * @description Returns the wrapped values as a V12 object\n     */\n    get asV12() {\n        return this.__internal__getVersion(12, toV12);\n    }\n    /**\n     * @description Returns the wrapped values as a V13 object\n     */\n    get asV13() {\n        return this.__internal__getVersion(13, toV13);\n    }\n    /**\n     * @description Returns the wrapped values as a V14 object\n     */\n    get asV14() {\n        return this.__internal__getVersion(14, toV14);\n    }\n    /**\n     * @description Returns the wrapped values as a V14 object\n     */\n    get asV15() {\n        return this.__internal__getVersion(15, toV15);\n    }\n    /**\n     * @description Returns the wrapped values as a latest version object\n     */\n    get asLatest() {\n        return this.__internal__getVersion('latest', toLatest);\n    }\n    /**\n     * @description The magicNumber for the Metadata (known constant)\n     */\n    get magicNumber() {\n        return this.getT('magicNumber');\n    }\n    /**\n     * @description the metadata version this structure represents\n     */\n    get version() {\n        return this.__internal__metadata().index;\n    }\n    getUniqTypes(throwError) {\n        return getUniqTypes(this.registry, this.asLatest, throwError);\n    }\n    /**\n     * @description Converts the Object to JSON, typically used for RPC transfers\n     */\n    toJSON() {\n        // HACK(y): ensure that we apply the aliases if we have not done so already, this is\n        // needed to ensure we have the correct overrides (which is only applied in toLatest)\n        // eslint-disable-next-line no-unused-expressions\n        this.asLatest;\n        return super.toJSON();\n    }\n}\n","export const KNOWN_VERSIONS = [15, 14, 13, 12, 11, 10, 9];\nexport const LATEST_VERSION = KNOWN_VERSIONS[0];\nexport const TO_CALLS_VERSION = 14; // LATEST_VERSION;\n","import { isString, isU8a, u8aToU8a } from '@polkadot/util';\nimport { MetadataVersioned } from './MetadataVersioned.js';\nconst EMPTY_METADATA = new Uint8Array([0x6d, 0x65, 0x74, 0x61, 9]);\nconst VERSION_IDX = EMPTY_METADATA.length - 1;\n/** @internal */\nfunction decodeU8a(registry, u8a) {\n    if (u8a.length === 0) {\n        return EMPTY_METADATA;\n    }\n    else if (u8a[VERSION_IDX] === 9) {\n        // This is an f-ing hack as a follow-up to another ugly hack\n        // https://github.com/polkadot-js/api/commit/a9211690be6b68ad6c6dad7852f1665cadcfa5b2\n        // when we fail on V9, try to re-parse it as v10...\n        try {\n            return new MetadataVersioned(registry, u8a);\n        }\n        catch {\n            u8a[VERSION_IDX] = 10;\n        }\n    }\n    return u8a;\n}\n/**\n * @name Metadata\n * @description\n * The versioned runtime metadata as a decoded structure\n */\nexport class Metadata extends MetadataVersioned {\n    constructor(registry, value) {\n        // const timeStart = performance.now()\n        super(registry, isU8a(value) || isString(value)\n            ? decodeU8a(registry, u8aToU8a(value))\n            : value);\n        // console.log('Metadata', `${(performance.now() - timeStart).toFixed(2)}ms`)\n    }\n}\n","import { isNumber, isUndefined, objectSpread, stringify } from '@polkadot/util';\nimport { TypeDefInfo } from '../types/index.js';\nconst stringIdentity = (value) => value.toString();\nconst INFO_WRAP = ['BTreeMap', 'BTreeSet', 'Compact', 'HashMap', 'Option', 'Result', 'Vec'];\nexport function paramsNotation(outer, inner, transform = stringIdentity) {\n    return `${outer}${inner\n        ? `<${(Array.isArray(inner) ? inner : [inner]).map(transform).join(', ')}>`\n        : ''}`;\n}\nfunction encodeWithParams(registry, typeDef, outer) {\n    const { info, sub } = typeDef;\n    switch (info) {\n        case TypeDefInfo.BTreeMap:\n        case TypeDefInfo.BTreeSet:\n        case TypeDefInfo.Compact:\n        case TypeDefInfo.HashMap:\n        case TypeDefInfo.Linkage:\n        case TypeDefInfo.Option:\n        case TypeDefInfo.Range:\n        case TypeDefInfo.RangeInclusive:\n        case TypeDefInfo.Result:\n        case TypeDefInfo.Vec:\n        case TypeDefInfo.WrapperKeepOpaque:\n        case TypeDefInfo.WrapperOpaque:\n            return paramsNotation(outer, sub, (p) => encodeTypeDef(registry, p));\n    }\n    throw new Error(`Unable to encode ${stringify(typeDef)} with params`);\n}\nfunction encodeSubTypes(registry, sub, asEnum, extra) {\n    const names = sub.map(({ name }) => name);\n    if (!names.every((n) => !!n)) {\n        throw new Error(`Subtypes does not have consistent names, ${names.join(', ')}`);\n    }\n    const inner = objectSpread({}, extra);\n    for (let i = 0, count = sub.length; i < count; i++) {\n        const def = sub[i];\n        if (!def.name) {\n            throw new Error(`No name found in ${stringify(def)}`);\n        }\n        inner[def.name] = encodeTypeDef(registry, def);\n    }\n    return stringify(asEnum\n        ? { _enum: inner }\n        : inner);\n}\nconst encoders = {\n    [TypeDefInfo.BTreeMap]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'BTreeMap'),\n    [TypeDefInfo.BTreeSet]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'BTreeSet'),\n    [TypeDefInfo.Compact]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'Compact'),\n    [TypeDefInfo.DoNotConstruct]: (registry, { displayName, lookupIndex, lookupName }) => `DoNotConstruct<${lookupName || displayName || (isUndefined(lookupIndex) ? 'Unknown' : registry.createLookupType(lookupIndex))}>`,\n    [TypeDefInfo.Enum]: (registry, { sub }) => {\n        if (!Array.isArray(sub)) {\n            throw new Error('Unable to encode Enum type');\n        }\n        // c-like enums have all Null entries\n        // TODO We need to take the disciminant into account and auto-add empty entries\n        return sub.every(({ type }) => type === 'Null')\n            ? stringify({ _enum: sub.map(({ name }, index) => `${name || `Empty${index}`}`) })\n            : encodeSubTypes(registry, sub, true);\n    },\n    [TypeDefInfo.HashMap]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'HashMap'),\n    [TypeDefInfo.Int]: (_registry, { length = 32 }) => `Int<${length}>`,\n    [TypeDefInfo.Linkage]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'Linkage'),\n    [TypeDefInfo.Null]: (_registry, _typeDef) => 'Null',\n    [TypeDefInfo.Option]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'Option'),\n    [TypeDefInfo.Plain]: (_registry, { displayName, type }) => displayName || type,\n    [TypeDefInfo.Range]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'Range'),\n    [TypeDefInfo.RangeInclusive]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'RangeInclusive'),\n    [TypeDefInfo.Result]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'Result'),\n    [TypeDefInfo.Set]: (_registry, { length = 8, sub }) => {\n        if (!Array.isArray(sub)) {\n            throw new Error('Unable to encode Set type');\n        }\n        return stringify({\n            _set: sub.reduce((all, { index, name }, count) => objectSpread(all, { [`${name || `Unknown${index || count}`}`]: index || count }), { _bitLength: length || 8 })\n        });\n    },\n    [TypeDefInfo.Si]: (_registry, { lookupName, type }) => lookupName || type,\n    [TypeDefInfo.Struct]: (registry, { alias, sub }) => {\n        if (!Array.isArray(sub)) {\n            throw new Error('Unable to encode Struct type');\n        }\n        return encodeSubTypes(registry, sub, false, alias\n            ? {\n                _alias: [...alias.entries()].reduce((all, [k, v]) => objectSpread(all, { [k]: v }), {})\n            }\n            : {});\n    },\n    [TypeDefInfo.Tuple]: (registry, { sub }) => {\n        if (!Array.isArray(sub)) {\n            throw new Error('Unable to encode Tuple type');\n        }\n        return `(${sub.map((type) => encodeTypeDef(registry, type)).join(',')})`;\n    },\n    [TypeDefInfo.UInt]: (_registry, { length = 32 }) => `UInt<${length}>`,\n    [TypeDefInfo.Vec]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'Vec'),\n    [TypeDefInfo.VecFixed]: (_registry, { length, sub }) => {\n        if (!isNumber(length) || !sub || Array.isArray(sub)) {\n            throw new Error('Unable to encode VecFixed type');\n        }\n        return `[${sub.type};${length}]`;\n    },\n    [TypeDefInfo.WrapperKeepOpaque]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'WrapperKeepOpaque'),\n    [TypeDefInfo.WrapperOpaque]: (registry, typeDef) => encodeWithParams(registry, typeDef, 'WrapperOpaque')\n};\nfunction encodeType(registry, typeDef, withLookup = true) {\n    return withLookup && typeDef.lookupName\n        ? typeDef.lookupName\n        : encoders[typeDef.info](registry, typeDef);\n}\nexport function encodeTypeDef(registry, typeDef) {\n    // In the case of contracts we do have the unfortunate situation where the displayName would\n    // refer to \"Option\" when it is an option. For these, string it out, only using when actually\n    // not a top-level element to be used\n    return (typeDef.displayName && !INFO_WRAP.some((i) => typeDef.displayName === i))\n        ? typeDef.displayName\n        : encodeType(registry, typeDef);\n}\nexport function withTypeString(registry, typeDef) {\n    return objectSpread({}, typeDef, {\n        type: encodeType(registry, typeDef, false)\n    });\n}\n","import { sanitize, Struct } from '@polkadot/types-codec';\nimport { getTypeDef, TypeDefInfo, withTypeString } from '@polkadot/types-create';\nimport { assertUnreachable, isNumber, isString, logger, objectSpread, stringCamelCase, stringify, stringPascalCase } from '@polkadot/util';\nconst l = logger('PortableRegistry');\nconst TYPE_UNWRAP = { toNumber: () => -1 };\nconst PRIMITIVE_ALIAS = {\n    Char: 'u32',\n    Str: 'Text'\n};\nconst PATHS_ALIAS = splitNamespace([\n    // full matching on exact names...\n    // these are well-known types with additional encoding\n    'sp_core::crypto::AccountId32',\n    'sp_runtime::generic::era::Era',\n    'sp_runtime::multiaddress::MultiAddress',\n    // ethereum overrides (Frontier, Moonbeam, Polkadot claims)\n    'fp_account::AccountId20',\n    'account::AccountId20',\n    'polkadot_runtime_common::claims::EthereumAddress',\n    // weights 2 is a structure, however for 1.5. with a single field it\n    // should be flatenned (can appear in Compact<Weight> extrinsics)\n    'frame_support::weights::weight_v2::Weight',\n    'sp_weights::weight_v2::Weight',\n    // wildcard matching in place...\n    // these have a specific encoding or logic, use a wildcard for {pallet, darwinia}_democracy\n    '*_democracy::vote::Vote',\n    '*_conviction_voting::vote::Vote',\n    '*_identity::types::Data',\n    // these are opaque Vec<u8> wrappers\n    'sp_core::OpaqueMetadata',\n    'sp_core::OpaquePeerId',\n    'sp_core::offchain::OpaqueMultiaddr',\n    // shorten some well-known types\n    'primitive_types::*',\n    'sp_arithmetic::per_things::*',\n    // runtime\n    '*_runtime::RuntimeCall',\n    '*_runtime::RuntimeEvent',\n    // ink!\n    'ink::env::types::*',\n    'ink::primitives::types::*',\n    'ink_env::types::*',\n    'ink_primitives::types::*',\n    // noir\n    'np_runtime::accountname::AccountName',\n    'np_runtime::universaladdress::UniversalAddress'\n]);\nconst PATHS_SET = splitNamespace([\n    'pallet_identity::types::BitFlags'\n]);\nconst BITVEC_NS_LSB = ['bitvec::order::Lsb0', 'BitOrderLsb0'];\nconst BITVEC_NS_MSB = ['bitvec::order::Msb0', 'BitOrderMsb0'];\nconst BITVEC_NS = [...BITVEC_NS_LSB, ...BITVEC_NS_MSB];\nconst WRAPPERS = ['BoundedBTreeMap', 'BoundedBTreeSet', 'BoundedVec', 'Box', 'BTreeMap', 'BTreeSet', 'Cow', 'Option', 'Range', 'RangeInclusive', 'Result', 'WeakBoundedVec', 'WrapperKeepOpaque', 'WrapperOpaque'];\nconst RESERVED = [\n    // JS reserved words\n    'entries', 'keys', 'new', 'size',\n    // exposed by all Codec objects\n    'hash', 'registry'\n];\nconst PATH_RM_INDEX_1 = ['generic', 'misc', 'pallet', 'traits', 'types'];\n/** @internal Converts a Text[] into string[] (used as part of definitions) */\nfunction sanitizeDocs(docs) {\n    const count = docs.length;\n    const result = new Array(count);\n    for (let i = 0; i < count; i++) {\n        result[i] = docs[i].toString();\n    }\n    return result;\n}\n/** @internal Split a namespace with :: into individual parts */\nfunction splitNamespace(values) {\n    const count = values.length;\n    const result = new Array(count);\n    for (let i = 0; i < count; i++) {\n        result[i] = values[i].split('::');\n    }\n    return result;\n}\n/** @internal Match a namespace based on parts (alongside wildcards) */\nfunction matchParts(first, second) {\n    return first.length === second.length && first.every((a, index) => {\n        const b = second[index].toString();\n        if ((a === '*') || (a === b)) {\n            return true;\n        }\n        if (a.includes('*') && a.includes('_') && b.includes('_')) {\n            let suba = a.split('_');\n            let subb = b.split('_');\n            // match initial *'s to multiples if we have a match for the other\n            if (suba[0] === '*') {\n                const indexOf = subb.indexOf(suba[1]);\n                if (indexOf !== -1) {\n                    suba = suba.slice(1);\n                    subb = subb.slice(indexOf);\n                }\n            }\n            // check for * matches at the end, adjust accordingly\n            if ((suba.length === 2) && (suba[1] === '*') && (suba[0] === subb[0])) {\n                return true;\n            }\n            return matchParts(suba, subb);\n        }\n        return false;\n    });\n}\n/** @internal check if the path matches the PATHS_ALIAS (with wildcards) */\nfunction getAliasPath({ def, path }) {\n    // specific logic for weights - we override when non-complex struct\n    // (as applied in Weight 1.5 where we also have `Compact<{ refTime: u64 }>)\n    if (['frame_support::weights::weight_v2::Weight', 'sp_weights::weight_v2::Weight'].includes(path.join('::'))) {\n        return !def.isComposite || def.asComposite.fields.length === 1\n            ? 'WeightV1'\n            : null;\n    }\n    // TODO We need to handle ink! Balance in some way\n    return path.length && PATHS_ALIAS.some((a) => matchParts(a, path))\n        ? path[path.length - 1].toString()\n        : null;\n}\n/** @internal Converts a type name into a JS-API compatible name */\nfunction extractNameFlat(portable, lookupIndex, params, path, isInternal = false) {\n    const count = path.length;\n    // if we have no path or determined as a wrapper, we just skip it\n    if (count === 0 || WRAPPERS.includes(path[count - 1].toString())) {\n        return null;\n    }\n    const camels = new Array(count);\n    const lowers = new Array(count);\n    // initially just create arrays of the camelCase and lowercase path\n    // parts - we will check these to extract the final values. While\n    // we have 2 loops here, we also don't do the same operation twice\n    for (let i = 0; i < count; i++) {\n        const c = stringPascalCase(isInternal\n            ? path[i].replace('pallet_', '')\n            : path[i]);\n        const l = c.toLowerCase();\n        camels[i] = c;\n        lowers[i] = l;\n    }\n    let name = '';\n    for (let i = 0; i < count; i++) {\n        const l = lowers[i];\n        // Remove ::{generic, misc, pallet, traits, types}::\n        if (i !== 1 || !PATH_RM_INDEX_1.includes(l)) {\n            // sp_runtime::generic::digest::Digest -> sp_runtime::generic::Digest\n            // sp_runtime::multiaddress::MultiAddress -> sp_runtime::MultiAddress\n            if (l !== lowers[i + 1]) {\n                name += camels[i];\n            }\n        }\n    }\n    // do magic for RawOrigin lookup, e.g. pallet_collective::RawOrigin\n    if (camels[1] === 'RawOrigin' && count === 2 && params.length === 2 && params[1].type.isSome) {\n        const instanceType = portable[params[1].type.unwrap().toNumber()];\n        if (instanceType.type.path.length === 2) {\n            name = `${name}${instanceType.type.path[1].toString()}`;\n        }\n    }\n    return { lookupIndex, name, params };\n}\n/** @internal Alias for extractNameFlat with PortableType as a last parameter */\nfunction extractName(portable, lookupIndex, { type: { params, path } }) {\n    return extractNameFlat(portable, lookupIndex, params, path);\n}\n/** @internal Check for dupes from a specific index onwards */\nfunction nextDupeMatches(name, startAt, names) {\n    const result = [names[startAt]];\n    for (let i = startAt + 1, count = names.length; i < count; i++) {\n        const v = names[i];\n        if (v.name === name) {\n            result.push(v);\n        }\n    }\n    return result;\n}\n/** @internal Checks to see if a type is a full duplicate (with all params matching) */\nfunction rewriteDupes(input, rewrite) {\n    const count = input.length;\n    for (let i = 0; i < count; i++) {\n        const a = input[i];\n        for (let j = i + 1; j < count; j++) {\n            const b = input[j];\n            // if the indexes are not the same and the names match, we have a dupe\n            if (a.lookupIndex !== b.lookupIndex && a.name === b.name) {\n                return false;\n            }\n        }\n    }\n    // add all the adjusted values to the rewite map\n    for (let i = 0; i < count; i++) {\n        const p = input[i];\n        rewrite[p.lookupIndex] = p.name;\n    }\n    return true;\n}\n/** @internal Find duplicates and adjust the names based on parameters */\nfunction removeDupeNames(lookup, portable, names) {\n    const rewrite = {};\n    return names\n        .map((original, startAt) => {\n        const { lookupIndex, name, params } = original;\n        if (!name) {\n            // the name is empty (this is not expected, but have a failsafe)\n            return null;\n        }\n        else if (rewrite[lookupIndex]) {\n            // we have already rewritten this one, we can skip it\n            return original;\n        }\n        // those where the name is matching starting from this index\n        const allSame = nextDupeMatches(name, startAt, names);\n        // we only have one, so all ok\n        if (allSame.length === 1) {\n            return original;\n        }\n        // are there param differences between matching names\n        const anyDiff = allSame.some((o) => params.length !== o.params.length ||\n            params.some((p, index) => !p.name.eq(o.params[index].name) ||\n                p.type.unwrapOr(TYPE_UNWRAP).toNumber() !== o.params[index].type.unwrapOr(TYPE_UNWRAP).toNumber()));\n        // everything matches, we can combine these\n        if (!anyDiff) {\n            return original;\n        }\n        // TODO We probably want to attach all the indexes with differences,\n        // not just the first\n        // find the first parameter that yields differences\n        const paramIdx = params.findIndex(({ type }, index) => allSame.every(({ params }, aIndex) => params[index].type.isSome && (aIndex === 0 ||\n            !params[index].type.eq(type))));\n        // No param found that is different\n        if (paramIdx === -1) {\n            return original;\n        }\n        // see if using the param type helps\n        const sameCount = allSame.length;\n        const adjusted = new Array(sameCount);\n        // loop through all, specifically checking that index where the\n        // first param yields differences\n        for (let i = 0; i < sameCount; i++) {\n            const { lookupIndex, name, params } = allSame[i];\n            const { def, path } = lookup.getSiType(params[paramIdx].type.unwrap());\n            // if it is not a primitive and it doesn't have a path, we really cannot\n            // do anything at this point\n            if (!def.isPrimitive && !path.length) {\n                return null;\n            }\n            adjusted[i] = {\n                lookupIndex,\n                name: def.isPrimitive\n                    ? `${name}${def.asPrimitive.toString()}`\n                    : `${name}${path[path.length - 1].toString()}`\n            };\n        }\n        // check to see if the adjusted names have no issues\n        if (rewriteDupes(adjusted, rewrite)) {\n            return original;\n        }\n        // TODO This is duplicated from the section just above...\n        // ... we certainly need a better solution here\n        //\n        // Last-ditch effort to use the full type path - ugly\n        // loop through all, specifically checking that index where the\n        // first param yields differences\n        for (let i = 0; i < sameCount; i++) {\n            const { lookupIndex, name, params } = allSame[i];\n            const { def, path } = lookup.getSiType(params[paramIdx].type.unwrap());\n            const flat = extractNameFlat(portable, lookupIndex, params, path, true);\n            if (def.isPrimitive || !flat) {\n                return null;\n            }\n            adjusted[i] = {\n                lookupIndex,\n                name: `${name}${flat.name}`\n            };\n        }\n        // check to see if the adjusted names have no issues\n        if (rewriteDupes(adjusted, rewrite)) {\n            return original;\n        }\n        return null;\n    })\n        .filter((n) => !!n)\n        .map(({ lookupIndex, name, params }) => ({\n        lookupIndex,\n        name: rewrite[lookupIndex] || name,\n        params\n    }));\n}\n/** @internal Detect on-chain types (AccountId/Signature) as set as the default */\nfunction registerTypes(lookup, lookups, names, params) {\n    // Register the types we extracted\n    lookup.registry.register(lookups);\n    // Try and extract the AccountId/Address/Signature type from UncheckedExtrinsic\n    if (params.SpRuntimeUncheckedExtrinsic) {\n        // Address, Call, Signature, Extra\n        const [addrParam, , sigParam] = params.SpRuntimeUncheckedExtrinsic;\n        const siAddress = lookup.getSiType(addrParam.type.unwrap());\n        const siSignature = lookup.getSiType(sigParam.type.unwrap());\n        const nsSignature = siSignature.path.join('::');\n        let nsAccountId = siAddress.path.join('::');\n        const isMultiAddress = nsAccountId === 'sp_runtime::multiaddress::MultiAddress';\n        // With multiaddress, we check the first type param again\n        if (isMultiAddress) {\n            // AccountId, AccountIndex\n            const [idParam] = siAddress.params;\n            nsAccountId = lookup.getSiType(idParam.type.unwrap()).path.join('::');\n        }\n        lookup.registry.register({\n            // known: account::AccountId20, fp_account::AccountId20, primitive_types::H160\n            AccountId: nsAccountId.endsWith('::AccountId20') || nsAccountId.endsWith('::H160')\n                ? 'AccountId20'\n                : 'AccountId32',\n            Address: isMultiAddress\n                ? 'MultiAddress'\n                : 'AccountId',\n            ExtrinsicSignature: ['sp_runtime::MultiSignature'].includes(nsSignature)\n                ? 'MultiSignature'\n                : names[sigParam.type.unwrap().toNumber()] || 'MultiSignature'\n        });\n    }\n}\n/**\n * @internal Extracts aliases based on what we know the runtime config looks like in a\n * Substrate chain. Specifically we want to have access to the Call and Event params\n **/\nfunction extractAliases(params, isContract) {\n    const hasParams = Object.keys(params).some((k) => !k.startsWith('Pallet'));\n    const alias = {};\n    if (params.SpRuntimeUncheckedExtrinsic) {\n        // Address, Call, Signature, Extra\n        const [, { type }] = params.SpRuntimeUncheckedExtrinsic;\n        alias[type.unwrap().toNumber()] = 'Call';\n    }\n    else if (hasParams && !isContract) {\n        l.warn('Unable to determine runtime Call type, cannot inspect sp_runtime::generic::unchecked_extrinsic::UncheckedExtrinsic');\n    }\n    if (params.FrameSystemEventRecord) {\n        // Event, Topic\n        const [{ type }] = params.FrameSystemEventRecord;\n        alias[type.unwrap().toNumber()] = 'Event';\n    }\n    else if (hasParams && !isContract) {\n        l.warn('Unable to determine runtime Event type, cannot inspect frame_system::EventRecord');\n    }\n    return alias;\n}\n/** @internal Extracts all the intreresting type information for this registry */\nfunction extractTypeInfo(lookup, portable) {\n    const nameInfo = [];\n    const types = {};\n    for (let i = 0, count = portable.length; i < count; i++) {\n        const type = portable[i];\n        const lookupIndex = type.id.toNumber();\n        const extracted = extractName(portable, lookupIndex, portable[i]);\n        if (extracted) {\n            nameInfo.push(extracted);\n        }\n        types[lookupIndex] = type;\n    }\n    const lookups = {};\n    const names = {};\n    const params = {};\n    const dedup = removeDupeNames(lookup, portable, nameInfo);\n    for (let i = 0, count = dedup.length; i < count; i++) {\n        const { lookupIndex, name, params: p } = dedup[i];\n        names[lookupIndex] = name;\n        lookups[name] = lookup.registry.createLookupType(lookupIndex);\n        params[name] = p;\n    }\n    return { lookups, names, params, types };\n}\nexport class PortableRegistry extends Struct {\n    constructor(registry, value, isContract) {\n        // const timeStart = performance.now()\n        super(registry, {\n            types: 'Vec<PortableType>'\n        }, value);\n        this.__internal__typeDefs = {};\n        const { lookups, names, params, types } = extractTypeInfo(this, this.types);\n        this.__internal__alias = extractAliases(params, isContract);\n        this.__internal__lookups = lookups;\n        this.__internal__names = names;\n        this.__internal__params = params;\n        this.__internal__types = types;\n        // console.log('PortableRegistry', `${(performance.now() - timeStart).toFixed(2)}ms`)\n    }\n    /**\n     * @description Returns all the available type names for this chain\n     **/\n    get names() {\n        return Object.values(this.__internal__names).sort();\n    }\n    /**\n     * @description Returns all the available parameterized types for this chain\n     **/\n    get paramTypes() {\n        return this.__internal__params;\n    }\n    /**\n     * @description The types of the registry\n     */\n    get types() {\n        return this.getT('types');\n    }\n    /**\n     * @description Register all available types into the registry (generally for internal usage)\n     */\n    register() {\n        registerTypes(this, this.__internal__lookups, this.__internal__names, this.__internal__params);\n    }\n    /**\n     * @description Returns the name for a specific lookup\n     */\n    getName(lookupId) {\n        return this.__internal__names[this.__internal__getLookupId(lookupId)];\n    }\n    /**\n     * @description Finds a specific type in the registry\n     */\n    getSiType(lookupId) {\n        // NOTE catch-22 - this may already be used as part of the constructor, so\n        // ensure that we have actually initialized it correctly\n        const found = (this.__internal__types || this.types)[this.__internal__getLookupId(lookupId)];\n        if (!found) {\n            throw new Error(`PortableRegistry: Unable to find type with lookupId ${lookupId.toString()}`);\n        }\n        return found.type;\n    }\n    /**\n     * @description Lookup the type definition for the index\n     */\n    getTypeDef(lookupId) {\n        const lookupIndex = this.__internal__getLookupId(lookupId);\n        if (!this.__internal__typeDefs[lookupIndex]) {\n            const lookupName = this.__internal__names[lookupIndex];\n            const empty = {\n                info: TypeDefInfo.DoNotConstruct,\n                lookupIndex,\n                lookupName,\n                type: this.registry.createLookupType(lookupIndex)\n            };\n            // Set named items since we will get into circular lookups along the way\n            if (lookupName) {\n                this.__internal__typeDefs[lookupIndex] = empty;\n            }\n            const extracted = this.__internal__extract(this.getSiType(lookupId), lookupIndex);\n            // For non-named items, we only set this right at the end\n            if (!lookupName) {\n                this.__internal__typeDefs[lookupIndex] = empty;\n            }\n            Object.keys(extracted).forEach((k) => {\n                if (k !== 'lookupName' || extracted[k]) {\n                    // these are safe since we are looking through the keys as set\n                    this.__internal__typeDefs[lookupIndex][k] = extracted[k];\n                }\n            });\n            // don't set lookupName on lower-level, we want to always direct to the type\n            if (extracted.info === TypeDefInfo.Plain) {\n                this.__internal__typeDefs[lookupIndex].lookupNameRoot = this.__internal__typeDefs[lookupIndex].lookupName;\n                delete this.__internal__typeDefs[lookupIndex].lookupName;\n            }\n        }\n        return this.__internal__typeDefs[lookupIndex];\n    }\n    /**\n     * @description For a specific field, perform adjustments to not have built-in conflicts\n     */\n    sanitizeField(name) {\n        let nameField = null;\n        let nameOrig = null;\n        if (name.isSome) {\n            nameField = stringCamelCase(name.unwrap());\n            if (nameField.includes('#')) {\n                nameOrig = nameField;\n                nameField = nameOrig.replace(/#/g, '_');\n            }\n            else if (RESERVED.includes(nameField)) {\n                nameOrig = nameField;\n                nameField = `${nameField}_`;\n            }\n        }\n        return [nameField, nameOrig];\n    }\n    /** @internal Creates a TypeDef based on an internal lookupId */\n    __internal__createSiDef(lookupId) {\n        const typeDef = this.getTypeDef(lookupId);\n        const lookupIndex = lookupId.toNumber();\n        // Setup for a lookup on complex types\n        return [TypeDefInfo.DoNotConstruct, TypeDefInfo.Enum, TypeDefInfo.Struct].includes(typeDef.info) && typeDef.lookupName\n            ? {\n                docs: typeDef.docs,\n                info: TypeDefInfo.Si,\n                lookupIndex,\n                lookupName: this.__internal__names[lookupIndex],\n                type: this.registry.createLookupType(lookupId)\n            }\n            : typeDef;\n    }\n    /** @internal Converts a lookupId input to the actual lookup index */\n    __internal__getLookupId(lookupId) {\n        if (isString(lookupId)) {\n            if (!this.registry.isLookupType(lookupId)) {\n                throw new Error(`PortableRegistry: Expected a lookup string type, found ${lookupId}`);\n            }\n            return parseInt(lookupId.replace('Lookup', ''), 10);\n        }\n        else if (isNumber(lookupId)) {\n            return lookupId;\n        }\n        return lookupId.toNumber();\n    }\n    /** @internal Converts a type into a TypeDef for Codec usage */\n    __internal__extract(type, lookupIndex) {\n        const namespace = type.path.join('::');\n        let typeDef;\n        const aliasType = this.__internal__alias[lookupIndex] || getAliasPath(type);\n        try {\n            if (aliasType) {\n                typeDef = this.__internal__extractAliasPath(lookupIndex, aliasType);\n            }\n            else {\n                switch (type.def.type) {\n                    case 'Array':\n                        typeDef = this.__internal__extractArray(lookupIndex, type.def.asArray);\n                        break;\n                    case 'BitSequence':\n                        typeDef = this.__internal__extractBitSequence(lookupIndex, type.def.asBitSequence);\n                        break;\n                    case 'Compact':\n                        typeDef = this.__internal__extractCompact(lookupIndex, type.def.asCompact);\n                        break;\n                    case 'Composite':\n                        typeDef = this.__internal__extractComposite(lookupIndex, type, type.def.asComposite);\n                        break;\n                    case 'HistoricMetaCompat':\n                        typeDef = this.__internal__extractHistoric(lookupIndex, type.def.asHistoricMetaCompat);\n                        break;\n                    case 'Primitive':\n                        typeDef = this.__internal__extractPrimitive(lookupIndex, type);\n                        break;\n                    case 'Sequence':\n                        typeDef = this.__internal__extractSequence(lookupIndex, type.def.asSequence);\n                        break;\n                    case 'Tuple':\n                        typeDef = this.__internal__extractTuple(lookupIndex, type.def.asTuple);\n                        break;\n                    case 'Variant':\n                        typeDef = this.__internal__extractVariant(lookupIndex, type, type.def.asVariant);\n                        break;\n                    default: assertUnreachable(type.def.type);\n                }\n            }\n        }\n        catch (error) {\n            throw new Error(`PortableRegistry: ${lookupIndex}${namespace ? ` (${namespace})` : ''}: Error extracting ${stringify(type)}: ${error.message}`);\n        }\n        return objectSpread({\n            docs: sanitizeDocs(type.docs),\n            namespace\n        }, typeDef);\n    }\n    /** @internal Extracts a ScaleInfo Array into TypeDef.VecFixed */\n    __internal__extractArray(_, { len, type }) {\n        const length = len.toNumber();\n        if (length > 2048) {\n            throw new Error('Only support for [Type; <length>], where length <= 2048');\n        }\n        return withTypeString(this.registry, {\n            info: TypeDefInfo.VecFixed,\n            length,\n            sub: this.__internal__createSiDef(type)\n        });\n    }\n    /** @internal Extracts a ScaleInfo BitSequence into TypeDef.Plain */\n    __internal__extractBitSequence(_, { bitOrderType, bitStoreType }) {\n        // With the v3 of scale-info this swapped around, but obviously the decoder cannot determine\n        // the order. With that in-mind, we apply a detection for LSb0/Msb and set accordingly\n        const a = this.__internal__createSiDef(bitOrderType);\n        const b = this.__internal__createSiDef(bitStoreType);\n        const [bitOrder, bitStore] = BITVEC_NS.includes(a.namespace || '')\n            ? [a, b]\n            : [b, a];\n        if (!bitOrder.namespace || !BITVEC_NS.includes(bitOrder.namespace)) {\n            throw new Error(`Unexpected bitOrder found as ${bitOrder.namespace || '<unknown>'}`);\n        }\n        else if (bitStore.info !== TypeDefInfo.Plain || bitStore.type !== 'u8') {\n            throw new Error(`Only u8 bitStore is currently supported, found ${bitStore.type}`);\n        }\n        const isLsb = BITVEC_NS_LSB.includes(bitOrder.namespace);\n        if (!isLsb) {\n            // TODO To remove this limitation, we need to pass an extra info flag\n            // through to the TypeDef (Here we could potentially re-use something\n            // like index (???) to indicate and ensure we use it to pass to the\n            // BitVec constructor - which does handle this type)\n            //\n            // See https://github.com/polkadot-js/api/issues/5588\n            // throw new Error(`Only LSB BitVec is currently supported, found ${bitOrder.namespace}`);\n        }\n        return {\n            info: TypeDefInfo.Plain,\n            type: 'BitVec'\n        };\n    }\n    /** @internal Extracts a ScaleInfo Compact into TypeDef.Compact */\n    __internal__extractCompact(_, { type }) {\n        return withTypeString(this.registry, {\n            info: TypeDefInfo.Compact,\n            sub: this.__internal__createSiDef(type)\n        });\n    }\n    /** @internal Extracts a ScaleInfo Composite into TypeDef.{BTree*, Range*, Wrapper*} */\n    __internal__extractComposite(lookupIndex, { params, path }, { fields }) {\n        if (path.length) {\n            const pathFirst = path[0].toString();\n            const pathLast = path[path.length - 1].toString();\n            if (path.length === 1 && pathFirst === 'BTreeMap') {\n                if (params.length !== 2) {\n                    throw new Error(`BTreeMap requires 2 parameters, found ${params.length}`);\n                }\n                return withTypeString(this.registry, {\n                    info: TypeDefInfo.BTreeMap,\n                    sub: params.map(({ type }) => this.__internal__createSiDef(type.unwrap()))\n                });\n            }\n            else if (path.length === 1 && pathFirst === 'BTreeSet') {\n                if (params.length !== 1) {\n                    throw new Error(`BTreeSet requires 1 parameter, found ${params.length}`);\n                }\n                return withTypeString(this.registry, {\n                    info: TypeDefInfo.BTreeSet,\n                    sub: this.__internal__createSiDef(params[0].type.unwrap())\n                });\n            }\n            else if (['Range', 'RangeInclusive'].includes(pathFirst)) {\n                if (params.length !== 1) {\n                    throw new Error(`Range requires 1 parameter, found ${params.length}`);\n                }\n                return withTypeString(this.registry, {\n                    info: pathFirst === 'Range'\n                        ? TypeDefInfo.Range\n                        : TypeDefInfo.RangeInclusive,\n                    sub: this.__internal__createSiDef(params[0].type.unwrap()),\n                    type: pathFirst\n                });\n            }\n            else if (['WrapperKeepOpaque', 'WrapperOpaque'].includes(pathLast)) {\n                if (params.length !== 1) {\n                    throw new Error(`WrapperOpaque requires 1 parameter, found ${params.length}`);\n                }\n                return withTypeString(this.registry, {\n                    info: pathLast === 'WrapperKeepOpaque'\n                        ? TypeDefInfo.WrapperKeepOpaque\n                        : TypeDefInfo.WrapperOpaque,\n                    sub: this.__internal__createSiDef(params[0].type.unwrap()),\n                    type: pathLast\n                });\n            }\n        }\n        return PATHS_SET.some((p) => matchParts(p, path))\n            ? this.__internal__extractCompositeSet(lookupIndex, params, fields)\n            : this.__internal__extractFields(lookupIndex, fields);\n    }\n    /** @internal Extracts a ScaleInfo CompositeSet into TypeDef.Set */\n    __internal__extractCompositeSet(_, params, fields) {\n        if (params.length !== 1 || fields.length !== 1) {\n            throw new Error('Set handling expects param/field as single entries');\n        }\n        return withTypeString(this.registry, {\n            info: TypeDefInfo.Set,\n            length: this.registry.createTypeUnsafe(this.registry.createLookupType(fields[0].type), []).bitLength(),\n            sub: this.getSiType(params[0].type.unwrap()).def.asVariant.variants.map(({ index, name }) => ({\n                // This will be an issue > 2^53 - 1 ... don't have those (yet)\n                index: index.toNumber(),\n                info: TypeDefInfo.Plain,\n                name: name.toString(),\n                type: 'Null'\n            }))\n        });\n    }\n    /** @internal Extracts ScaleInfo enum/struct fields into TypeDef.{Struct, Tuple} */\n    __internal__extractFields(lookupIndex, fields) {\n        let isStruct = true;\n        let isTuple = true;\n        const count = fields.length;\n        for (let f = 0; f < count; f++) {\n            const { name } = fields[f];\n            isStruct = isStruct && name.isSome;\n            isTuple = isTuple && name.isNone;\n        }\n        if (!isTuple && !isStruct) {\n            throw new Error('Invalid fields type detected, expected either Tuple (all unnamed) or Struct (all named)');\n        }\n        if (count === 0) {\n            return {\n                info: TypeDefInfo.Null,\n                type: 'Null'\n            };\n        }\n        else if (isTuple && count === 1) {\n            const typeDef = this.__internal__createSiDef(fields[0].type);\n            return objectSpread({}, typeDef, lookupIndex === -1\n                ? null\n                : {\n                    lookupIndex,\n                    lookupName: this.__internal__names[lookupIndex],\n                    lookupNameRoot: typeDef.lookupName\n                }, fields[0].typeName.isSome\n                ? { typeName: sanitize(fields[0].typeName.unwrap()) }\n                : null);\n        }\n        const [sub, alias] = this.__internal__extractFieldsAlias(fields);\n        return withTypeString(this.registry, objectSpread({\n            info: isTuple // Tuple check first\n                ? TypeDefInfo.Tuple\n                : TypeDefInfo.Struct,\n            sub\n        }, alias.size\n            ? { alias }\n            : null, lookupIndex === -1\n            ? null\n            : {\n                lookupIndex,\n                lookupName: this.__internal__names[lookupIndex]\n            }));\n    }\n    /** @internal Apply field aliassed (with no JS conflicts) */\n    __internal__extractFieldsAlias(fields) {\n        const alias = new Map();\n        const count = fields.length;\n        const sub = new Array(count);\n        for (let i = 0; i < count; i++) {\n            const { docs, name, type, typeName } = fields[i];\n            const typeDef = this.__internal__createSiDef(type);\n            if (name.isNone) {\n                sub[i] = typeDef;\n            }\n            else {\n                const [nameField, nameOrig] = this.sanitizeField(name);\n                if (nameField && nameOrig) {\n                    alias.set(nameField, nameOrig);\n                }\n                sub[i] = objectSpread({\n                    docs: sanitizeDocs(docs),\n                    name: nameField\n                }, typeDef, typeName.isSome\n                    ? { typeName: sanitize(typeName.unwrap()) }\n                    : null);\n            }\n        }\n        return [sub, alias];\n    }\n    /** @internal Extracts an internal Historic (pre V14) type  */\n    __internal__extractHistoric(_, type) {\n        return objectSpread({\n            displayName: type.toString(),\n            isFromSi: true\n        }, getTypeDef(type));\n    }\n    /** @internal Extracts a ScaleInfo Primitive into TypeDef.Plain */\n    __internal__extractPrimitive(_, type) {\n        const typeStr = type.def.asPrimitive.type.toString();\n        return {\n            info: TypeDefInfo.Plain,\n            type: PRIMITIVE_ALIAS[typeStr] || typeStr.toLowerCase()\n        };\n    }\n    /** @internal Applies an alias path onto the TypeDef */\n    __internal__extractAliasPath(_, type) {\n        return {\n            info: TypeDefInfo.Plain,\n            type\n        };\n    }\n    /** @internal Extracts a ScaleInfo Sequence into TypeDef.Vec (with Bytes shortcut) */\n    __internal__extractSequence(lookupIndex, { type }) {\n        const sub = this.__internal__createSiDef(type);\n        if (sub.type === 'u8') {\n            return {\n                info: TypeDefInfo.Plain,\n                type: 'Bytes'\n            };\n        }\n        return withTypeString(this.registry, {\n            info: TypeDefInfo.Vec,\n            lookupIndex,\n            lookupName: this.__internal__names[lookupIndex],\n            sub\n        });\n    }\n    /** @internal Extracts a ScaleInfo Tuple into TypeDef.Tuple */\n    __internal__extractTuple(lookupIndex, ids) {\n        if (ids.length === 0) {\n            return {\n                info: TypeDefInfo.Null,\n                type: 'Null'\n            };\n        }\n        else if (ids.length === 1) {\n            return this.getTypeDef(ids[0]);\n        }\n        const sub = ids.map((t) => this.__internal__createSiDef(t));\n        return withTypeString(this.registry, {\n            info: TypeDefInfo.Tuple,\n            lookupIndex,\n            lookupName: this.__internal__names[lookupIndex],\n            sub\n        });\n    }\n    /** @internal Extracts a ScaleInfo Variant into TypeDef.{Option, Result, Enum} */\n    __internal__extractVariant(lookupIndex, { params, path }, { variants }) {\n        if (path.length) {\n            const specialVariant = path[0].toString();\n            if (specialVariant === 'Option') {\n                if (params.length !== 1) {\n                    throw new Error(`Option requires 1 parameter, found ${params.length}`);\n                }\n                // NOTE This is opt-in (unhandled), not by default\n                // if (sub.type === 'bool') {\n                //   return withTypeString(this.registry, {\n                //     info: TypeDefInfo.Plain,\n                //     type: 'OptionBool'\n                //   });\n                // }\n                return withTypeString(this.registry, {\n                    info: TypeDefInfo.Option,\n                    sub: this.__internal__createSiDef(params[0].type.unwrap())\n                });\n            }\n            else if (specialVariant === 'Result') {\n                if (params.length !== 2) {\n                    throw new Error(`Result requires 2 parameters, found ${params.length}`);\n                }\n                return withTypeString(this.registry, {\n                    info: TypeDefInfo.Result,\n                    sub: params.map(({ type }, index) => objectSpread({\n                        name: ['Ok', 'Error'][index]\n                    }, this.__internal__createSiDef(type.unwrap())))\n                });\n            }\n        }\n        if (variants.length === 0) {\n            return {\n                info: TypeDefInfo.Null,\n                type: 'Null'\n            };\n        }\n        return this.__internal__extractVariantEnum(lookupIndex, variants);\n    }\n    /** @internal Extracts a ScaleInfo Variant into TypeDef.Enum */\n    __internal__extractVariantEnum(lookupIndex, variants) {\n        const sub = [];\n        // we may get entries out of order, arrange them first before creating with gaps filled\n        // NOTE: Since we mutate, use a copy of the array as an input\n        variants\n            .slice()\n            .sort((a, b) => a.index.cmp(b.index))\n            .forEach(({ fields, index: bnIndex, name }) => {\n            const index = bnIndex.toNumber();\n            while (sub.length !== index) {\n                sub.push({\n                    index: sub.length,\n                    info: TypeDefInfo.Null,\n                    name: `__Unused${sub.length}`,\n                    type: 'Null'\n                });\n            }\n            sub.push(objectSpread(this.__internal__extractFields(-1, fields), {\n                index,\n                name: name.toString()\n            }));\n        });\n        return withTypeString(this.registry, {\n            info: TypeDefInfo.Enum,\n            lookupIndex,\n            lookupName: this.__internal__names[lookupIndex],\n            sub\n        });\n    }\n}\n","import { DoNotConstruct, Json, Raw } from '@polkadot/types-codec';\nimport { constructTypeClass, createClassUnsafe, createTypeUnsafe } from '@polkadot/types-create';\nimport { assertReturn, BN_ZERO, formatBalance, isBn, isFunction, isNumber, isString, isU8a, lazyMethod, logger, objectSpread, stringCamelCase, stringify } from '@polkadot/util';\nimport { blake2AsU8a } from '@polkadot/util-crypto';\nimport { expandExtensionTypes, fallbackExtensions, findUnknownExtensions } from '../extrinsic/signedExtensions/index.js';\nimport { GenericEventData } from '../generic/Event.js';\nimport * as baseTypes from '../index.types.js';\nimport * as definitions from '../interfaces/definitions.js';\nimport { createCallFunction } from '../metadata/decorate/extrinsics/index.js';\nimport { decorateConstants, filterCallsSome, filterEventsSome } from '../metadata/decorate/index.js';\nimport { Metadata } from '../metadata/Metadata.js';\nimport { PortableRegistry } from '../metadata/PortableRegistry/index.js';\nimport { lazyVariants } from './lazy.js';\nconst DEFAULT_FIRST_CALL_IDX = new Uint8Array(2);\nconst l = logger('registry');\nfunction sortDecimalStrings(a, b) {\n    return parseInt(a, 10) - parseInt(b, 10);\n}\nfunction valueToString(v) {\n    return v.toString();\n}\nfunction getFieldArgs(lookup, fields) {\n    const count = fields.length;\n    const args = new Array(count);\n    for (let i = 0; i < count; i++) {\n        args[i] = lookup.getTypeDef(fields[i].type).type;\n    }\n    return args;\n}\nfunction clearRecord(record) {\n    const keys = Object.keys(record);\n    for (let i = 0, count = keys.length; i < count; i++) {\n        delete record[keys[i]];\n    }\n}\nfunction getVariantStringIdx({ index }) {\n    return index.toString();\n}\nfunction injectErrors(_, { lookup, pallets }, version, result) {\n    clearRecord(result);\n    for (let i = 0, count = pallets.length; i < count; i++) {\n        const { errors, index, name } = pallets[i];\n        if (errors.isSome) {\n            const sectionName = stringCamelCase(name);\n            lazyMethod(result, version >= 12 ? index.toNumber() : i, () => lazyVariants(lookup, errors.unwrap(), getVariantStringIdx, ({ docs, fields, index, name }) => ({\n                args: getFieldArgs(lookup, fields),\n                docs: docs.map(valueToString),\n                fields,\n                index: index.toNumber(),\n                method: name.toString(),\n                name: name.toString(),\n                section: sectionName\n            })));\n        }\n    }\n}\nfunction injectEvents(registry, { lookup, pallets }, version, result) {\n    const filtered = pallets.filter(filterEventsSome);\n    clearRecord(result);\n    for (let i = 0, count = filtered.length; i < count; i++) {\n        const { events, index, name } = filtered[i];\n        lazyMethod(result, version >= 12 ? index.toNumber() : i, () => lazyVariants(lookup, events.unwrap(), getVariantStringIdx, (variant) => {\n            const meta = registry.createType('EventMetadataLatest', objectSpread({}, variant, { args: getFieldArgs(lookup, variant.fields) }));\n            return class extends GenericEventData {\n                constructor(registry, value) {\n                    super(registry, value, meta, stringCamelCase(name), variant.name.toString());\n                }\n            };\n        }));\n    }\n}\nfunction injectExtrinsics(registry, { lookup, pallets }, version, result, mapping) {\n    const filtered = pallets.filter(filterCallsSome);\n    clearRecord(result);\n    clearRecord(mapping);\n    for (let i = 0, count = filtered.length; i < count; i++) {\n        const { calls, index, name } = filtered[i];\n        const sectionIndex = version >= 12 ? index.toNumber() : i;\n        const sectionName = stringCamelCase(name);\n        const allCalls = calls.unwrap();\n        lazyMethod(result, sectionIndex, () => lazyVariants(lookup, allCalls, getVariantStringIdx, (variant) => createCallFunction(registry, lookup, variant, sectionName, sectionIndex)));\n        const { path } = registry.lookup.getSiType(allCalls.type);\n        // frame_system::pallet::Call / pallet_balances::pallet::Call / polkadot_runtime_parachains::configuration::pallet::Call /\n        const palletIdx = path.findIndex((v) => v.eq('pallet'));\n        if (palletIdx !== -1) {\n            const name = stringCamelCase(path\n                .slice(0, palletIdx)\n                .map((p, i) => i === 0\n                // frame_system || pallet_balances\n                ? p.replace(/^(frame|pallet)_/, '')\n                : p)\n                .join(' '));\n            if (!mapping[name]) {\n                mapping[name] = [sectionName];\n            }\n            else {\n                mapping[name].push(sectionName);\n            }\n        }\n    }\n}\nfunction extractProperties(registry, metadata) {\n    const original = registry.getChainProperties();\n    const constants = decorateConstants(registry, metadata.asLatest, metadata.version);\n    const ss58Format = constants['system'] && (constants['system']['sS58Prefix'] || constants['system']['ss58Prefix']);\n    if (!ss58Format) {\n        return original;\n    }\n    const { isEthereum, tokenDecimals, tokenSymbol } = original || {};\n    return registry.createTypeUnsafe('ChainProperties', [{ isEthereum, ss58Format, tokenDecimals, tokenSymbol }]);\n}\nexport class TypeRegistry {\n    constructor(createdAtHash) {\n        this.__internal__classes = new Map();\n        this.__internal__definitions = new Map();\n        this.__internal__firstCallIndex = null;\n        this.__internal__hasher = blake2AsU8a;\n        this.__internal__knownTypes = {};\n        this.__internal__metadataVersion = 0;\n        this.__internal__signedExtensions = fallbackExtensions;\n        this.__internal__unknownTypes = new Map();\n        this.__internal__metadataCalls = {};\n        this.__internal__metadataErrors = {};\n        this.__internal__metadataEvents = {};\n        this.__internal__moduleMap = {};\n        this.__internal__registerObject = (obj) => {\n            const entries = Object.entries(obj);\n            for (let e = 0, count = entries.length; e < count; e++) {\n                const [name, type] = entries[e];\n                if (isFunction(type)) {\n                    // This _looks_ a bit funny, but `typeof Clazz === 'function'\n                    this.__internal__classes.set(name, type);\n                }\n                else {\n                    const def = isString(type)\n                        ? type\n                        : stringify(type);\n                    if (name === def) {\n                        throw new Error(`Unable to register circular ${name} === ${def}`);\n                    }\n                    // we already have this type, remove the classes registered for it\n                    if (this.__internal__classes.has(name)) {\n                        this.__internal__classes.delete(name);\n                    }\n                    this.__internal__definitions.set(name, def);\n                }\n            }\n        };\n        // register alias types alongside the portable/lookup setup\n        // (we don't combine this into setLookup since that would/could\n        // affect stand-along lookups, such as ABIs which don't have\n        // actual on-chain metadata)\n        this.__internal__registerLookup = (lookup) => {\n            // attach the lookup before we register any types\n            this.setLookup(lookup);\n            // we detect based on runtime configuration\n            let Weight = null;\n            if (this.hasType('SpWeightsWeightV2Weight')) {\n                // detection for WeightV2 type based on latest naming\n                const weightv2 = this.createType('SpWeightsWeightV2Weight');\n                Weight = weightv2.refTime && weightv2.proofSize\n                    // with both refTime & proofSize we use as-is (WeightV2)\n                    ? 'SpWeightsWeightV2Weight'\n                    // fallback to WeightV1 (WeightV1.5 is a struct, single field)\n                    : 'WeightV1';\n            }\n            else if (!isBn(this.createType('Weight'))) {\n                // where we have an already-supplied BN override, we don't clobber\n                // it with our detected value (This protects against pre-defines\n                // where Weight may be aliassed to WeightV0, e.g. in early Kusama chains)\n                Weight = 'WeightV1';\n            }\n            if (Weight) {\n                // we have detected a version, adjust the definition\n                this.register({ Weight });\n            }\n        };\n        this.__internal__knownDefaults = objectSpread({ Json, Metadata, PortableRegistry, Raw }, baseTypes);\n        this.__internal__knownDefaultsEntries = Object.entries(this.__internal__knownDefaults);\n        this.__internal__knownDefinitions = definitions;\n        const allKnown = Object.values(this.__internal__knownDefinitions);\n        for (let i = 0, count = allKnown.length; i < count; i++) {\n            this.register(allKnown[i].types);\n        }\n        if (createdAtHash) {\n            this.createdAtHash = this.createType('BlockHash', createdAtHash);\n        }\n    }\n    get chainDecimals() {\n        if (this.__internal__chainProperties?.tokenDecimals.isSome) {\n            const allDecimals = this.__internal__chainProperties.tokenDecimals.unwrap();\n            if (allDecimals.length) {\n                return allDecimals.map((b) => b.toNumber());\n            }\n        }\n        return [12];\n    }\n    get chainIsEthereum() {\n        return this.__internal__chainProperties?.isEthereum.isTrue || false;\n    }\n    get chainSS58() {\n        return this.__internal__chainProperties?.ss58Format.isSome\n            ? this.__internal__chainProperties.ss58Format.unwrap().toNumber()\n            : undefined;\n    }\n    get chainTokens() {\n        if (this.__internal__chainProperties?.tokenSymbol.isSome) {\n            const allTokens = this.__internal__chainProperties.tokenSymbol.unwrap();\n            if (allTokens.length) {\n                return allTokens.map(valueToString);\n            }\n        }\n        return [formatBalance.getDefaults().unit];\n    }\n    get firstCallIndex() {\n        return this.__internal__firstCallIndex || DEFAULT_FIRST_CALL_IDX;\n    }\n    /**\n     * @description Returns true if the type is in a Compat format\n     */\n    isLookupType(value) {\n        return /Lookup\\d+$/.test(value);\n    }\n    /**\n     * @description Creates a lookup string from the supplied id\n     */\n    createLookupType(lookupId) {\n        return `Lookup${typeof lookupId === 'number' ? lookupId : lookupId.toNumber()}`;\n    }\n    get knownTypes() {\n        return this.__internal__knownTypes;\n    }\n    get lookup() {\n        return assertReturn(this.__internal__lookup, 'PortableRegistry has not been set on this registry');\n    }\n    get metadata() {\n        return assertReturn(this.__internal__metadata, 'Metadata has not been set on this registry');\n    }\n    get unknownTypes() {\n        return [...this.__internal__unknownTypes.keys()];\n    }\n    get signedExtensions() {\n        return this.__internal__signedExtensions;\n    }\n    clearCache() {\n        this.__internal__classes = new Map();\n    }\n    /**\n     * @describe Creates an instance of the class\n     */\n    createClass(type) {\n        return createClassUnsafe(this, type);\n    }\n    /**\n     * @describe Creates an instance of the class\n     */\n    createClassUnsafe(type) {\n        return createClassUnsafe(this, type);\n    }\n    /**\n     * @description Creates an instance of a type as registered\n     */\n    createType(type, ...params) {\n        return createTypeUnsafe(this, type, params);\n    }\n    /**\n     * @description Creates an instance of a type as registered\n     */\n    createTypeUnsafe(type, params, options) {\n        return createTypeUnsafe(this, type, params, options);\n    }\n    // find a specific call\n    findMetaCall(callIndex) {\n        const [section, method] = [callIndex[0], callIndex[1]];\n        return assertReturn(this.__internal__metadataCalls[`${section}`] && this.__internal__metadataCalls[`${section}`][`${method}`], () => `findMetaCall: Unable to find Call with index [${section}, ${method}]/[${callIndex.toString()}]`);\n    }\n    // finds an error\n    findMetaError(errorIndex) {\n        const [section, method] = isU8a(errorIndex)\n            ? [errorIndex[0], errorIndex[1]]\n            : [\n                errorIndex.index.toNumber(),\n                isU8a(errorIndex.error)\n                    ? errorIndex.error[0]\n                    : errorIndex.error.toNumber()\n            ];\n        return assertReturn(this.__internal__metadataErrors[`${section}`] && this.__internal__metadataErrors[`${section}`][`${method}`], () => `findMetaError: Unable to find Error with index [${section}, ${method}]/[${errorIndex.toString()}]`);\n    }\n    findMetaEvent(eventIndex) {\n        const [section, method] = [eventIndex[0], eventIndex[1]];\n        return assertReturn(this.__internal__metadataEvents[`${section}`] && this.__internal__metadataEvents[`${section}`][`${method}`], () => `findMetaEvent: Unable to find Event with index [${section}, ${method}]/[${eventIndex.toString()}]`);\n    }\n    get(name, withUnknown, knownTypeDef) {\n        return this.getUnsafe(name, withUnknown, knownTypeDef);\n    }\n    getUnsafe(name, withUnknown, knownTypeDef) {\n        let Type = this.__internal__classes.get(name) || this.__internal__knownDefaults[name];\n        // we have not already created the type, attempt it\n        if (!Type) {\n            const definition = this.__internal__definitions.get(name);\n            let BaseType;\n            // we have a definition, so create the class now (lazily)\n            if (definition) {\n                BaseType = createClassUnsafe(this, definition);\n            }\n            else if (knownTypeDef) {\n                BaseType = constructTypeClass(this, knownTypeDef);\n            }\n            else if (withUnknown) {\n                l.warn(`Unable to resolve type ${name}, it will fail on construction`);\n                this.__internal__unknownTypes.set(name, true);\n                BaseType = DoNotConstruct.with(name);\n            }\n            if (BaseType) {\n                // NOTE If we didn't extend here, we would have strange artifacts. An example is\n                // Balance, with this, new Balance() instanceof u128 is true, but Balance !== u128\n                // Additionally, we now pass through the registry, which is a link to ourselves\n                Type = class extends BaseType {\n                };\n                this.__internal__classes.set(name, Type);\n                // In the case of lookups, we also want to store the actual class against\n                // the lookup name, instad of having to traverse again\n                if (knownTypeDef && isNumber(knownTypeDef.lookupIndex)) {\n                    this.__internal__classes.set(this.createLookupType(knownTypeDef.lookupIndex), Type);\n                }\n            }\n        }\n        return Type;\n    }\n    getChainProperties() {\n        return this.__internal__chainProperties;\n    }\n    getClassName(Type) {\n        // we cannot rely on export order (anymore, since babel/core 7.15.8), so in the case of\n        // items such as u32 & U32, we get the lowercase versions here... not quite as optimal\n        // (previously this used to be a simple find & return)\n        const names = [];\n        for (const [name, Clazz] of this.__internal__knownDefaultsEntries) {\n            if (Type === Clazz) {\n                names.push(name);\n            }\n        }\n        for (const [name, Clazz] of this.__internal__classes.entries()) {\n            if (Type === Clazz) {\n                names.push(name);\n            }\n        }\n        return names.length\n            // both sort and reverse are done in-place\n            // ['U32', 'u32'] -> ['u32', 'U32']\n            ? names.sort().reverse()[0]\n            : undefined;\n    }\n    getDefinition(typeName) {\n        return this.__internal__definitions.get(typeName);\n    }\n    getModuleInstances(specName, moduleName) {\n        return this.__internal__knownTypes?.typesBundle?.spec?.[specName.toString()]?.instances?.[moduleName] || this.__internal__moduleMap[moduleName];\n    }\n    getOrThrow(name) {\n        const Clazz = this.get(name);\n        if (!Clazz) {\n            throw new Error(`type ${name} not found`);\n        }\n        return Clazz;\n    }\n    getOrUnknown(name) {\n        return this.get(name, true);\n    }\n    getSignedExtensionExtra() {\n        return expandExtensionTypes(this.__internal__signedExtensions, 'payload', this.__internal__userExtensions);\n    }\n    getSignedExtensionTypes() {\n        return expandExtensionTypes(this.__internal__signedExtensions, 'extrinsic', this.__internal__userExtensions);\n    }\n    hasClass(name) {\n        return this.__internal__classes.has(name) || !!this.__internal__knownDefaults[name];\n    }\n    hasDef(name) {\n        return this.__internal__definitions.has(name);\n    }\n    hasType(name) {\n        return !this.__internal__unknownTypes.get(name) && (this.hasClass(name) || this.hasDef(name));\n    }\n    hash(data) {\n        return this.createType('CodecHash', this.__internal__hasher(data));\n    }\n    // eslint-disable-next-line no-dupe-class-members\n    register(arg1, arg2) {\n        // NOTE Constructors appear as functions here\n        if (isFunction(arg1)) {\n            this.__internal__classes.set(arg1.name, arg1);\n        }\n        else if (isString(arg1)) {\n            if (!isFunction(arg2)) {\n                throw new Error(`Expected class definition passed to '${arg1}' registration`);\n            }\n            else if (arg1 === arg2.toString()) {\n                throw new Error(`Unable to register circular ${arg1} === ${arg1}`);\n            }\n            this.__internal__classes.set(arg1, arg2);\n        }\n        else {\n            this.__internal__registerObject(arg1);\n        }\n    }\n    // sets the chain properties\n    setChainProperties(properties) {\n        if (properties) {\n            this.__internal__chainProperties = properties;\n        }\n    }\n    setHasher(hasher) {\n        this.__internal__hasher = hasher || blake2AsU8a;\n    }\n    setKnownTypes(knownTypes) {\n        this.__internal__knownTypes = knownTypes;\n    }\n    setLookup(lookup) {\n        this.__internal__lookup = lookup;\n        // register all applicable types found\n        lookup.register();\n    }\n    // sets the metadata\n    setMetadata(metadata, signedExtensions, userExtensions, noInitWarn) {\n        this.__internal__metadata = metadata.asLatest;\n        this.__internal__metadataVersion = metadata.version;\n        this.__internal__firstCallIndex = null;\n        // attach the lookup at this point and register relevant types (before injecting)\n        this.__internal__registerLookup(this.__internal__metadata.lookup);\n        injectExtrinsics(this, this.__internal__metadata, this.__internal__metadataVersion, this.__internal__metadataCalls, this.__internal__moduleMap);\n        injectErrors(this, this.__internal__metadata, this.__internal__metadataVersion, this.__internal__metadataErrors);\n        injectEvents(this, this.__internal__metadata, this.__internal__metadataVersion, this.__internal__metadataEvents);\n        // set the default call index (the lowest section, the lowest method)\n        // in most chains this should be 0,0\n        const [defSection] = Object\n            .keys(this.__internal__metadataCalls)\n            .sort(sortDecimalStrings);\n        if (defSection) {\n            const [defMethod] = Object\n                .keys(this.__internal__metadataCalls[defSection])\n                .sort(sortDecimalStrings);\n            if (defMethod) {\n                this.__internal__firstCallIndex = new Uint8Array([parseInt(defSection, 10), parseInt(defMethod, 10)]);\n            }\n        }\n        // setup the available extensions\n        this.setSignedExtensions(signedExtensions || (this.__internal__metadata.extrinsic.version.gt(BN_ZERO)\n            // FIXME Use the extension and their injected types\n            ? this.__internal__metadata.extrinsic.signedExtensions.map(({ identifier }) => identifier.toString())\n            : fallbackExtensions), userExtensions, noInitWarn);\n        // setup the chain properties with format overrides\n        this.setChainProperties(extractProperties(this, metadata));\n    }\n    // sets the available signed extensions\n    setSignedExtensions(signedExtensions = fallbackExtensions, userExtensions, noInitWarn) {\n        this.__internal__signedExtensions = signedExtensions;\n        this.__internal__userExtensions = userExtensions;\n        if (!noInitWarn) {\n            const unknown = findUnknownExtensions(this.__internal__signedExtensions, this.__internal__userExtensions);\n            if (unknown.length) {\n                l.warn(`Unknown signed extensions ${unknown.join(', ')} found, treating them as no-effect`);\n            }\n        }\n    }\n}\n","export const typesChain = {};\n","const sharedTypes = {\n    // Anchor\n    AnchorData: {\n        anchoredBlock: 'u64',\n        docRoot: 'H256',\n        id: 'H256'\n    },\n    DispatchErrorModule: 'DispatchErrorModuleU8',\n    PreCommitData: {\n        expirationBlock: 'u64',\n        identity: 'H256',\n        signingRoot: 'H256'\n    },\n    // Fees\n    Fee: {\n        key: 'Hash',\n        price: 'Balance'\n    },\n    // MultiAccount\n    MultiAccountData: {\n        deposit: 'Balance',\n        depositor: 'AccountId',\n        signatories: 'Vec<AccountId>',\n        threshold: 'u16'\n    },\n    // Bridge\n    ChainId: 'u8',\n    DepositNonce: 'u64',\n    ResourceId: '[u8; 32]',\n    'chainbridge::ChainId': 'u8',\n    // NFT\n    RegistryId: 'H160',\n    TokenId: 'U256',\n    AssetId: {\n        registryId: 'RegistryId',\n        tokenId: 'TokenId'\n    },\n    AssetInfo: {\n        metadata: 'Bytes'\n    },\n    MintInfo: {\n        anchorId: 'Hash',\n        proofs: 'Vec<ProofMint>',\n        staticHashes: '[Hash; 3]'\n    },\n    Proof: {\n        leafHash: 'H256',\n        sortedHashes: 'H256'\n    },\n    ProofMint: {\n        hashes: 'Vec<Hash>',\n        property: 'Bytes',\n        salt: '[u8; 32]',\n        value: 'Bytes'\n    },\n    RegistryInfo: {\n        fields: 'Vec<Bytes>',\n        ownerCanBurn: 'bool'\n    },\n    ProxyType: {\n        _enum: [\n            'Any',\n            'NonTransfer',\n            'Governance',\n            'Staking',\n            'NonProxy'\n        ]\n    }\n};\nconst standaloneTypes = {\n    ...sharedTypes,\n    AccountInfo: 'AccountInfoWithRefCount',\n    Address: 'LookupSource',\n    LookupSource: 'IndicesLookupSource',\n    Multiplier: 'Fixed64',\n    RefCount: 'RefCountTo259'\n};\nexport const versioned = [\n    {\n        minmax: [240, 243],\n        types: {\n            ...standaloneTypes,\n            ProxyType: {\n                _enum: [\n                    'Any',\n                    'NonTransfer',\n                    'Governance',\n                    'Staking',\n                    'Vesting'\n                ]\n            }\n        }\n    },\n    {\n        minmax: [244, 999],\n        types: { ...standaloneTypes }\n    },\n    {\n        minmax: [1000, undefined],\n        types: { ...sharedTypes }\n    }\n];\n","import { mapXcmTypes } from '@polkadot/types-create';\nconst sharedTypes = {\n    CompactAssignments: 'CompactAssignmentsWith24',\n    DispatchErrorModule: 'DispatchErrorModuleU8',\n    RawSolution: 'RawSolutionWith24',\n    Keys: 'SessionKeys6',\n    ProxyType: {\n        _enum: ['Any', 'NonTransfer', 'Governance', 'Staking', 'IdentityJudgement', 'CancelProxy', 'Auction']\n    },\n    Weight: 'WeightV1'\n};\nconst addrIndicesTypes = {\n    AccountInfo: 'AccountInfoWithRefCount',\n    Address: 'LookupSource',\n    CompactAssignments: 'CompactAssignmentsWith16',\n    DispatchErrorModule: 'DispatchErrorModuleU8',\n    RawSolution: 'RawSolutionWith16',\n    Keys: 'SessionKeys5',\n    LookupSource: 'IndicesLookupSource',\n    ValidatorPrefs: 'ValidatorPrefsWithCommission'\n};\nconst addrAccountIdTypes = {\n    AccountInfo: 'AccountInfoWithRefCount',\n    Address: 'AccountId',\n    CompactAssignments: 'CompactAssignmentsWith16',\n    DispatchErrorModule: 'DispatchErrorModuleU8',\n    RawSolution: 'RawSolutionWith16',\n    Keys: 'SessionKeys5',\n    LookupSource: 'AccountId',\n    ValidatorPrefs: 'ValidatorPrefsWithCommission'\n};\nexport const versioned = [\n    {\n        // 1020 is first CC3\n        minmax: [1019, 1031],\n        types: {\n            ...addrIndicesTypes,\n            BalanceLock: 'BalanceLockTo212',\n            CompactAssignments: 'CompactAssignmentsTo257',\n            DispatchError: 'DispatchErrorTo198',\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            IdentityInfo: 'IdentityInfoTo198',\n            Keys: 'SessionKeys5',\n            Multiplier: 'Fixed64',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259',\n            ReferendumInfo: 'ReferendumInfoTo239',\n            Scheduled: 'ScheduledTo254',\n            SlashingSpans: 'SlashingSpansTo204',\n            StakingLedger: 'StakingLedgerTo223',\n            Votes: 'VotesTo230',\n            Weight: 'u32'\n        }\n    },\n    {\n        minmax: [1032, 1042],\n        types: {\n            ...addrIndicesTypes,\n            BalanceLock: 'BalanceLockTo212',\n            CompactAssignments: 'CompactAssignmentsTo257',\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            Keys: 'SessionKeys5',\n            Multiplier: 'Fixed64',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259',\n            ReferendumInfo: 'ReferendumInfoTo239',\n            Scheduled: 'ScheduledTo254',\n            SlashingSpans: 'SlashingSpansTo204',\n            StakingLedger: 'StakingLedgerTo223',\n            Votes: 'VotesTo230',\n            Weight: 'u32'\n        }\n    },\n    {\n        // actual at 1045 (1043-1044 is dev)\n        minmax: [1043, 1045],\n        types: {\n            ...addrIndicesTypes,\n            BalanceLock: 'BalanceLockTo212',\n            CompactAssignments: 'CompactAssignmentsTo257',\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            Keys: 'SessionKeys5',\n            Multiplier: 'Fixed64',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259',\n            ReferendumInfo: 'ReferendumInfoTo239',\n            Scheduled: 'ScheduledTo254',\n            StakingLedger: 'StakingLedgerTo223',\n            Votes: 'VotesTo230',\n            Weight: 'u32'\n        }\n    },\n    {\n        minmax: [1046, 1049],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            Multiplier: 'Fixed64',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259',\n            ReferendumInfo: 'ReferendumInfoTo239',\n            Scheduled: 'ScheduledTo254',\n            StakingLedger: 'StakingLedgerTo223',\n            Weight: 'u32'\n        }\n    },\n    {\n        minmax: [1050, 1054],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            Multiplier: 'Fixed64',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259',\n            ReferendumInfo: 'ReferendumInfoTo239',\n            Scheduled: 'ScheduledTo254',\n            StakingLedger: 'StakingLedgerTo240',\n            Weight: 'u32'\n        }\n    },\n    {\n        minmax: [1055, 1056],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            Multiplier: 'Fixed64',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259',\n            Scheduled: 'ScheduledTo254',\n            StakingLedger: 'StakingLedgerTo240',\n            Weight: 'u32'\n        }\n    },\n    {\n        minmax: [1057, 1061],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259',\n            // Last 100% known problematic runtime range - this quite possibly need to\n            // apply to more runtime ranges that follow, we just don't know how far this\n            // should be applied to\n            //\n            // TL;DR whack-a-mole since this was not histrically checked\n            //\n            // See https://github.com/polkadot-js/api/issues/5618#issuecomment-1530970316\n            Scheduled: 'ScheduledTo254'\n        }\n    },\n    {\n        minmax: [1062, 2012],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259'\n        }\n    },\n    {\n        minmax: [2013, 2022],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            RefCount: 'RefCountTo259'\n        }\n    },\n    {\n        minmax: [2023, 2024],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            RefCount: 'RefCountTo259'\n        }\n    },\n    {\n        minmax: [2025, 2027],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes\n        }\n    },\n    {\n        minmax: [2028, 2029],\n        types: {\n            ...sharedTypes,\n            AccountInfo: 'AccountInfoWithDualRefCount',\n            CompactAssignments: 'CompactAssignmentsWith16',\n            RawSolution: 'RawSolutionWith16'\n        }\n    },\n    {\n        minmax: [2030, 9000],\n        types: {\n            ...sharedTypes,\n            CompactAssignments: 'CompactAssignmentsWith16',\n            RawSolution: 'RawSolutionWith16'\n        }\n    },\n    {\n        minmax: [9010, 9099],\n        types: {\n            ...sharedTypes,\n            ...mapXcmTypes('V0')\n        }\n    },\n    {\n        // jump from 9100 to 9110, however align with Rococo\n        minmax: [9100, 9105],\n        types: {\n            ...sharedTypes,\n            ...mapXcmTypes('V1')\n        }\n    },\n    {\n        // metadata v14\n        minmax: [9106, undefined],\n        types: {\n            Weight: 'WeightV1'\n        }\n    }\n    // ,\n    // {\n    //   // weight v2 introduction\n    //   minmax: [9300, undefined],\n    //   types: {\n    //     Weight: 'WeightV2'\n    //   }\n    // }\n];\n","export const versioned = [\n    {\n        minmax: [0, undefined],\n        types: {\n            // nothing, API tracks master\n            // (v2 weights are not yet the default)\n            Weight: 'WeightV2'\n        }\n    }\n];\n","export const versioned = [\n    {\n        minmax: [0, undefined],\n        types: {\n            // nothing, API tracks master\n            // (v2 weights are not yet the default)\n            Weight: 'WeightV2'\n        }\n    }\n];\n","const sharedTypes = {\n    CompactAssignments: 'CompactAssignmentsWith16',\n    DispatchErrorModule: 'DispatchErrorModuleU8',\n    RawSolution: 'RawSolutionWith16',\n    Keys: 'SessionKeys6',\n    ProxyType: {\n        _enum: {\n            Any: 0,\n            NonTransfer: 1,\n            Governance: 2,\n            Staking: 3,\n            UnusedSudoBalances: 4,\n            IdentityJudgement: 5,\n            CancelProxy: 6,\n            Auction: 7\n        }\n    },\n    Weight: 'WeightV1'\n};\nconst addrAccountIdTypes = {\n    AccountInfo: 'AccountInfoWithRefCount',\n    Address: 'AccountId',\n    DispatchErrorModule: 'DispatchErrorModuleU8',\n    Keys: 'SessionKeys5',\n    LookupSource: 'AccountId',\n    ValidatorPrefs: 'ValidatorPrefsWithCommission'\n};\nexport const versioned = [\n    {\n        minmax: [0, 12],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259'\n        }\n    },\n    {\n        minmax: [13, 22],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            RefCount: 'RefCountTo259'\n        }\n    },\n    {\n        minmax: [23, 24],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            RefCount: 'RefCountTo259'\n        }\n    },\n    {\n        minmax: [25, 27],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes\n        }\n    },\n    {\n        minmax: [28, 29],\n        types: {\n            ...sharedTypes,\n            AccountInfo: 'AccountInfoWithDualRefCount'\n        }\n    },\n    {\n        minmax: [30, 9109],\n        types: {\n            ...sharedTypes\n        }\n    },\n    {\n        // metadata v14\n        minmax: [9110, undefined],\n        types: {\n            Weight: 'WeightV1'\n        }\n    }\n    // ,\n    // {\n    //   // weight v2 introduction\n    //   minmax: [9300, undefined],\n    //   types: {\n    //     Weight: 'WeightV2'\n    //   }\n    // }\n];\n","import { mapXcmTypes } from '@polkadot/types-create';\n/* eslint-disable sort-keys */\nconst sharedTypes = {\n    DispatchErrorModule: 'DispatchErrorModuleU8',\n    FullIdentification: '()',\n    Keys: 'SessionKeys7B',\n    Weight: 'WeightV1'\n};\nexport const versioned = [\n    {\n        minmax: [0, 200],\n        types: {\n            ...sharedTypes,\n            AccountInfo: 'AccountInfoWithDualRefCount',\n            Address: 'AccountId',\n            LookupSource: 'AccountId'\n        }\n    },\n    {\n        minmax: [201, 214],\n        types: {\n            ...sharedTypes,\n            AccountInfo: 'AccountInfoWithDualRefCount'\n        }\n    },\n    {\n        minmax: [215, 228],\n        types: {\n            ...sharedTypes,\n            Keys: 'SessionKeys6'\n        }\n    },\n    {\n        minmax: [229, 9099],\n        types: {\n            ...sharedTypes,\n            ...mapXcmTypes('V0')\n        }\n    },\n    {\n        minmax: [9100, 9105],\n        types: {\n            ...sharedTypes,\n            ...mapXcmTypes('V1')\n        }\n    },\n    {\n        // metadata v14\n        minmax: [9106, undefined],\n        types: {\n            Weight: 'WeightV1'\n        }\n    }\n    // ,\n    // {\n    //   // weight v2 introduction\n    //   minmax: [9300, undefined],\n    //   types: {\n    //     Weight: 'WeightV2'\n    //   }\n    // }\n];\n","export const versioned = [\n    {\n        minmax: [0, undefined],\n        types: {\n        // nothing, limited runtime\n        }\n    }\n];\n","import { mapXcmTypes } from '@polkadot/types-create';\nconst sharedTypes = {\n    DispatchErrorModule: 'DispatchErrorModuleU8',\n    TAssetBalance: 'u128',\n    ProxyType: {\n        _enum: [\n            'Any',\n            'NonTransfer',\n            'CancelProxy',\n            'Assets',\n            'AssetOwner',\n            'AssetManager',\n            'Staking'\n        ]\n    },\n    Weight: 'WeightV1'\n};\nexport const versioned = [\n    {\n        minmax: [0, 3],\n        types: {\n            // Enum was modified mid-flight -\n            // https://github.com/paritytech/substrate/pull/10382/files#diff-e4e016b33a82268b6208dc974eea841bad47597865a749fee2f937eb6fdf67b4R498\n            DispatchError: 'DispatchErrorPre6First',\n            ...sharedTypes,\n            ...mapXcmTypes('V0')\n        }\n    },\n    {\n        minmax: [4, 5],\n        types: {\n            // As above, see https://github.com/polkadot-js/api/issues/5301\n            DispatchError: 'DispatchErrorPre6First',\n            ...sharedTypes,\n            ...mapXcmTypes('V1')\n        }\n    },\n    {\n        // metadata V14\n        minmax: [500, undefined],\n        types: {\n            Weight: 'WeightV1'\n        }\n    }\n    // ,\n    // {\n    //   // weight v2 introduction\n    //   minmax: [9300, undefined],\n    //   types: {\n    //     Weight: 'WeightV2'\n    //   }\n    // }\n];\n","import { mapXcmTypes } from '@polkadot/types-create';\nconst sharedTypes = {\n    // 16 validators\n    CompactAssignments: 'CompactAssignmentsWith16',\n    DispatchErrorModule: 'DispatchErrorModuleU8',\n    RawSolution: 'RawSolutionWith16',\n    // general\n    Keys: 'SessionKeys6',\n    ProxyType: {\n        _enum: ['Any', 'NonTransfer', 'Staking', 'SudoBalances', 'IdentityJudgement', 'CancelProxy']\n    },\n    Weight: 'WeightV1'\n};\nconst addrAccountIdTypes = {\n    AccountInfo: 'AccountInfoWithRefCount',\n    Address: 'AccountId',\n    CompactAssignments: 'CompactAssignmentsWith16',\n    DispatchErrorModule: 'DispatchErrorModuleU8',\n    LookupSource: 'AccountId',\n    Keys: 'SessionKeys5',\n    RawSolution: 'RawSolutionWith16',\n    ValidatorPrefs: 'ValidatorPrefsWithCommission'\n};\nexport const versioned = [\n    {\n        minmax: [1, 2],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            Multiplier: 'Fixed64',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259',\n            Weight: 'u32'\n        }\n    },\n    {\n        minmax: [3, 22],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            OpenTip: 'OpenTipTo225',\n            RefCount: 'RefCountTo259'\n        }\n    },\n    {\n        minmax: [23, 42],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            CompactAssignments: 'CompactAssignmentsTo257',\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            RefCount: 'RefCountTo259'\n        }\n    },\n    {\n        minmax: [43, 44],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes,\n            DispatchInfo: 'DispatchInfoTo244',\n            Heartbeat: 'HeartbeatTo244',\n            RefCount: 'RefCountTo259'\n        }\n    },\n    {\n        minmax: [45, 47],\n        types: {\n            ...sharedTypes,\n            ...addrAccountIdTypes\n        }\n    },\n    {\n        minmax: [48, 49],\n        types: {\n            ...sharedTypes,\n            AccountInfo: 'AccountInfoWithDualRefCount'\n        }\n    },\n    {\n        minmax: [50, 9099],\n        types: {\n            ...sharedTypes,\n            ...mapXcmTypes('V0')\n        }\n    },\n    {\n        minmax: [9100, 9105],\n        types: {\n            ...sharedTypes,\n            ...mapXcmTypes('V1')\n        }\n    },\n    {\n        // metadata v14\n        minmax: [9106, undefined],\n        types: {\n            Weight: 'WeightV1'\n        }\n    }\n    // ,\n    // {\n    //   // weight v2 introduction\n    //   minmax: [9300, undefined],\n    //   types: {\n    //     Weight: 'WeightV2'\n    //   }\n    // }\n];\n","import { versioned as centrifugeChain } from './centrifuge-chain.js';\nimport { versioned as kusama } from './kusama.js';\nimport { versioned as node } from './node.js';\nimport { versioned as nodeTemplate } from './node-template.js';\nimport { versioned as polkadot } from './polkadot.js';\nimport { versioned as rococo } from './rococo.js';\nimport { versioned as shell } from './shell.js';\nimport { versioned as statemint } from './statemint.js';\nimport { versioned as westend } from './westend.js';\nexport const typesSpec = {\n    'centrifuge-chain': centrifugeChain,\n    kusama,\n    node,\n    'node-template': nodeTemplate,\n    polkadot,\n    rococo,\n    shell,\n    statemine: statemint,\n    statemint,\n    westend,\n    westmint: statemint\n};\n","export const upgrades = [\n    [\n        0,\n        1020,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        26669,\n        1021,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        38245,\n        1022,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        54248,\n        1023,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        59659,\n        1024,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        67651,\n        1025,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        82191,\n        1027,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        83238,\n        1028,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        101503,\n        1029,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        203466,\n        1030,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        295787,\n        1031,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        461692,\n        1032,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        504329,\n        1033,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        569327,\n        1038,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                1\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        587687,\n        1039,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        653183,\n        1040,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        693488,\n        1042,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        901442,\n        1045,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1375086,\n        1050,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1445458,\n        1051,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1472960,\n        1052,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1475648,\n        1053,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1491596,\n        1054,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1574408,\n        1055,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                2\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                1\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2064961,\n        1058,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2201991,\n        1062,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2671528,\n        2005,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2704202,\n        2007,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2728002,\n        2008,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2832534,\n        2011,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2962294,\n        2012,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        3240000,\n        2013,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        3274408,\n        2015,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        3323565,\n        2019,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        3534175,\n        2022,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        3860281,\n        2023,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        4143129,\n        2024,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        4401242,\n        2025,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        4841367,\n        2026,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        5961600,\n        2027,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        6137912,\n        2028,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        6561855,\n        2029,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7100891,\n        2030,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7468792,\n        9010,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7668600,\n        9030,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7812476,\n        9040,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        8010981,\n        9050,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        8073833,\n        9070,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        8555825,\n        9080,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        8945245,\n        9090,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        9611377,\n        9100,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        9625129,\n        9111,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        9866422,\n        9122,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10403784,\n        9130,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10960765,\n        9150,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11006614,\n        9151,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11404482,\n        9160,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11601803,\n        9170,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        12008022,\n        9180,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        12405451,\n        9190,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        12665416,\n        9200,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        12909508,\n        9220,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        13109752,\n        9230,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        13555777,\n        9250,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        13727747,\n        9260,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        14248044,\n        9271,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        14433840,\n        9280,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        14645900,\n        9291,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        15048375,\n        9300,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        15426015,\n        9320,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                2\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                2\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        15680713,\n        9340,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                2\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                2\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        15756296,\n        9350,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                2\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                2\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ]\n];\n","export const upgrades = [\n    [\n        0,\n        0,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        29231,\n        1,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        188836,\n        5,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        199405,\n        6,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        214264,\n        7,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        244358,\n        8,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        303079,\n        9,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        314201,\n        10,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        342400,\n        11,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        443963,\n        12,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        528470,\n        13,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        687751,\n        14,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        746085,\n        15,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        787923,\n        16,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        799302,\n        17,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1205128,\n        18,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1603423,\n        23,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1733218,\n        24,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2005673,\n        25,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2436698,\n        26,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        3613564,\n        27,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        3899547,\n        28,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        4345767,\n        29,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        4876134,\n        30,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        5661442,\n        9050,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        6321619,\n        9080,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        6713249,\n        9090,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7217907,\n        9100,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7229126,\n        9110,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7560558,\n        9122,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        8115869,\n        9140,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        8638103,\n        9151,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        9280179,\n        9170,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        9738717,\n        9180,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10156856,\n        9190,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10458576,\n        9200,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10655116,\n        9220,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10879371,\n        9230,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11328884,\n        9250,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11532856,\n        9260,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11933818,\n        9270,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        12217535,\n        9280,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ]\n        ]\n    ],\n    [\n        12245277,\n        9281,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ]\n        ]\n    ],\n    [\n        12532644,\n        9291,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ]\n        ]\n    ],\n    [\n        12876189,\n        9300,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ]\n        ]\n    ]\n];\n","export const upgrades = [\n    [\n        214356,\n        4,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                1\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        392764,\n        7,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        409740,\n        8,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        809976,\n        20,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        877581,\n        24,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        879238,\n        25,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        889472,\n        26,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        902937,\n        27,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        932751,\n        28,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        991142,\n        29,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1030162,\n        31,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1119657,\n        32,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1199282,\n        33,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1342534,\n        34,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1392263,\n        35,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1431703,\n        36,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1433369,\n        37,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        1490972,\n        41,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2087397,\n        43,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2316688,\n        44,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        2549864,\n        45,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        3925782,\n        46,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        3925843,\n        47,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        4207800,\n        48,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        4627944,\n        49,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        5124076,\n        50,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        5478664,\n        900,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        5482450,\n        9000,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                4\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        5584305,\n        9010,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        5784566,\n        9030,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        5879822,\n        9031,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        5896856,\n        9032,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        5897316,\n        9033,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        6117927,\n        9050,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        6210274,\n        9070,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                2\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        6379314,\n        9080,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                2\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        6979141,\n        9090,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7568453,\n        9100,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7766394,\n        9111,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7911691,\n        9120,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7968866,\n        9121,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        7982889,\n        9122,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        8514322,\n        9130,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        9091726,\n        9140,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        9091774,\n        9150,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                3\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                1\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        9406726,\n        9160,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        9921066,\n        9170,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10007115,\n        9180,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                5\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10480973,\n        9190,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10578091,\n        9200,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10678509,\n        9210,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        10811001,\n        9220,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11096116,\n        9230,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11409279,\n        9250,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11584820,\n        9251,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11716837,\n        9260,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11876919,\n        9261,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ]\n        ]\n    ],\n    [\n        11987927,\n        9270,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        12077324,\n        9271,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        12301871,\n        9280,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        12604343,\n        9290,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                2\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        12841034,\n        9300,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        13128237,\n        9310,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                1\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                1\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        13272363,\n        9320,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                2\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                2\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        13483497,\n        9330,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                2\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                2\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        13649433,\n        9340,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                2\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                2\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ],\n    [\n        13761100,\n        9350,\n        [\n            [\n                \"0xdf6acb689907609b\",\n                4\n            ],\n            [\n                \"0x37e397fc7c91f5e4\",\n                1\n            ],\n            [\n                \"0x40fe3ad401f8959a\",\n                6\n            ],\n            [\n                \"0xd2bc9897eed08f15\",\n                3\n            ],\n            [\n                \"0xf78b278be53f454c\",\n                2\n            ],\n            [\n                \"0xaf2c0297a23e6d3d\",\n                3\n            ],\n            [\n                \"0x49eaaf1b548a0cb0\",\n                1\n            ],\n            [\n                \"0x91d5df18b0d2cf58\",\n                1\n            ],\n            [\n                \"0xed99c5acb25eedf5\",\n                3\n            ],\n            [\n                \"0xcbca25e39f142387\",\n                2\n            ],\n            [\n                \"0x687ad44ad37f03c2\",\n                1\n            ],\n            [\n                \"0xab3c0572291feb8b\",\n                1\n            ],\n            [\n                \"0xbc9d89904f5b923f\",\n                1\n            ],\n            [\n                \"0x37c8bb1350a9a2a8\",\n                2\n            ],\n            [\n                \"0xf3ff14d5ab527059\",\n                2\n            ],\n            [\n                \"0x17a6bc0d0062aeb3\",\n                1\n            ]\n        ]\n    ]\n];\n","import { selectableNetworks } from '@polkadot/networks';\nimport { BN, hexToU8a } from '@polkadot/util';\nimport * as allKnown from './e2e/index.js';\nconst NET_EXTRA = {\n    westend: {\n        genesisHash: ['0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e']\n    }\n};\n/** @internal */\nfunction mapRaw([network, versions]) {\n    const chain = selectableNetworks.find((n) => n.network === network) || NET_EXTRA[network];\n    if (!chain) {\n        throw new Error(`Unable to find info for chain ${network}`);\n    }\n    return {\n        genesisHash: hexToU8a(chain.genesisHash[0]),\n        network,\n        versions: versions.map(([blockNumber, specVersion, apis]) => ({\n            apis,\n            blockNumber: new BN(blockNumber),\n            specVersion: new BN(specVersion)\n        }))\n    };\n}\nexport const upgrades = Object.entries(allKnown).map(mapRaw);\n","import { bnToBn } from '@polkadot/util';\nimport { typesChain } from './chain/index.js';\nimport { typesSpec } from './spec/index.js';\nimport { upgrades } from './upgrades/index.js';\n/**\n * @description Perform the callback function using the stringified spec/chain\n * @internal\n * */\nfunction withNames(chainName, specName, fn) {\n    return fn(chainName.toString(), specName.toString());\n}\n/**\n * @descriptionFflatten a VersionedType[] into a Record<string, string>\n * @internal\n * */\nfunction filterVersions(versions = [], specVersion) {\n    return versions\n        .filter(({ minmax: [min, max] }) => (min === undefined || min === null || specVersion >= min) &&\n        (max === undefined || max === null || specVersion <= max))\n        .reduce((result, { types }) => ({ ...result, ...types }), {});\n}\n/**\n * @description Based on the chain and runtimeVersion, get the applicable signed extensions (ready for registration)\n */\nexport function getSpecExtensions({ knownTypes }, chainName, specName) {\n    return withNames(chainName, specName, (c, s) => ({\n        ...(knownTypes.typesBundle?.spec?.[s]?.signedExtensions ?? {}),\n        ...(knownTypes.typesBundle?.chain?.[c]?.signedExtensions ?? {})\n    }));\n}\n/**\n * @description Based on the chain and runtimeVersion, get the applicable types (ready for registration)\n */\nexport function getSpecTypes({ knownTypes }, chainName, specName, specVersion) {\n    const _specVersion = bnToBn(specVersion).toNumber();\n    return withNames(chainName, specName, (c, s) => ({\n        // The order here is always, based on -\n        //   - spec then chain\n        //   - typesBundle takes higher precedence\n        //   - types is the final catch-all override\n        ...filterVersions(typesSpec[s], _specVersion),\n        ...filterVersions(typesChain[c], _specVersion),\n        ...filterVersions(knownTypes.typesBundle?.spec?.[s]?.types, _specVersion),\n        ...filterVersions(knownTypes.typesBundle?.chain?.[c]?.types, _specVersion),\n        ...(knownTypes.typesSpec?.[s] ?? {}),\n        ...(knownTypes.typesChain?.[c] ?? {}),\n        ...(knownTypes.types ?? {})\n    }));\n}\n/**\n * @description Based on the chain or spec, return the hasher used\n */\nexport function getSpecHasher({ knownTypes }, chainName, specName) {\n    return withNames(chainName, specName, (c, s) => knownTypes.hasher ||\n        knownTypes.typesBundle?.chain?.[c]?.hasher ||\n        knownTypes.typesBundle?.spec?.[s]?.hasher ||\n        null);\n}\n/**\n * @description Based on the chain and runtimeVersion, get the applicable rpc definitions (ready for registration)\n */\nexport function getSpecRpc({ knownTypes }, chainName, specName) {\n    return withNames(chainName, specName, (c, s) => ({\n        ...(knownTypes.typesBundle?.spec?.[s]?.rpc ?? {}),\n        ...(knownTypes.typesBundle?.chain?.[c]?.rpc ?? {})\n    }));\n}\n/**\n * @description Based on the chain and runtimeVersion, get the applicable runtime definitions (ready for registration)\n */\nexport function getSpecRuntime({ knownTypes }, chainName, specName) {\n    return withNames(chainName, specName, (c, s) => ({\n        ...(knownTypes.typesBundle?.spec?.[s]?.runtime ?? {}),\n        ...(knownTypes.typesBundle?.chain?.[c]?.runtime ?? {})\n    }));\n}\n/**\n * @description Based on the chain and runtimeVersion, get the applicable alias definitions (ready for registration)\n */\nexport function getSpecAlias({ knownTypes }, chainName, specName) {\n    return withNames(chainName, specName, (c, s) => ({\n        // as per versions, first spec, then chain then finally non-versioned\n        ...(knownTypes.typesBundle?.spec?.[s]?.alias ?? {}),\n        ...(knownTypes.typesBundle?.chain?.[c]?.alias ?? {}),\n        ...(knownTypes.typesAlias ?? {})\n    }));\n}\n/**\n * @description Returns a version record for known chains where upgrades are being tracked\n */\nexport function getUpgradeVersion(genesisHash, blockNumber) {\n    const known = upgrades.find((u) => genesisHash.eq(u.genesisHash));\n    return known\n        ? [\n            known.versions.reduce((last, version) => {\n                return blockNumber.gt(version.blockNumber)\n                    ? version\n                    : last;\n            }, undefined),\n            known.versions.find((version) => blockNumber.lte(version.blockNumber))\n        ]\n        : [undefined, undefined];\n}\n","import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n  /**\n   * @deprecated Internal implementation detail. Do not construct error instances.\n   * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n   */\n  new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n  (_super) =>\n    function ObjectUnsubscribedErrorImpl(this: any) {\n      _super(this);\n      this.name = 'ObjectUnsubscribedError';\n      this.message = 'object unsubscribed';\n    }\n);\n","import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject<T> extends Observable<T> implements SubscriptionLike {\n  closed = false;\n\n  private currentObservers: Observer<T>[] | null = null;\n\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  observers: Observer<T>[] = [];\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  isStopped = false;\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  hasError = false;\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  thrownError: any = null;\n\n  /**\n   * Creates a \"subject\" by basically gluing an observer to an observable.\n   *\n   * @nocollapse\n   * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n   */\n  static create: (...args: any[]) => any = <T>(destination: Observer<T>, source: Observable<T>): AnonymousSubject<T> => {\n    return new AnonymousSubject<T>(destination, source);\n  };\n\n  constructor() {\n    // NOTE: This must be here to obscure Observable's constructor.\n    super();\n  }\n\n  /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n  lift<R>(operator: Operator<T, R>): Observable<R> {\n    const subject = new AnonymousSubject(this, this);\n    subject.operator = operator as any;\n    return subject as any;\n  }\n\n  /** @internal */\n  protected _throwIfClosed() {\n    if (this.closed) {\n      throw new ObjectUnsubscribedError();\n    }\n  }\n\n  next(value: T) {\n    errorContext(() => {\n      this._throwIfClosed();\n      if (!this.isStopped) {\n        if (!this.currentObservers) {\n          this.currentObservers = Array.from(this.observers);\n        }\n        for (const observer of this.currentObservers) {\n          observer.next(value);\n        }\n      }\n    });\n  }\n\n  error(err: any) {\n    errorContext(() => {\n      this._throwIfClosed();\n      if (!this.isStopped) {\n        this.hasError = this.isStopped = true;\n        this.thrownError = err;\n        const { observers } = this;\n        while (observers.length) {\n          observers.shift()!.error(err);\n        }\n      }\n    });\n  }\n\n  complete() {\n    errorContext(() => {\n      this._throwIfClosed();\n      if (!this.isStopped) {\n        this.isStopped = true;\n        const { observers } = this;\n        while (observers.length) {\n          observers.shift()!.complete();\n        }\n      }\n    });\n  }\n\n  unsubscribe() {\n    this.isStopped = this.closed = true;\n    this.observers = this.currentObservers = null!;\n  }\n\n  get observed() {\n    return this.observers?.length > 0;\n  }\n\n  /** @internal */\n  protected _trySubscribe(subscriber: Subscriber<T>): TeardownLogic {\n    this._throwIfClosed();\n    return super._trySubscribe(subscriber);\n  }\n\n  /** @internal */\n  protected _subscribe(subscriber: Subscriber<T>): Subscription {\n    this._throwIfClosed();\n    this._checkFinalizedStatuses(subscriber);\n    return this._innerSubscribe(subscriber);\n  }\n\n  /** @internal */\n  protected _innerSubscribe(subscriber: Subscriber<any>) {\n    const { hasError, isStopped, observers } = this;\n    if (hasError || isStopped) {\n      return EMPTY_SUBSCRIPTION;\n    }\n    this.currentObservers = null;\n    observers.push(subscriber);\n    return new Subscription(() => {\n      this.currentObservers = null;\n      arrRemove(observers, subscriber);\n    });\n  }\n\n  /** @internal */\n  protected _checkFinalizedStatuses(subscriber: Subscriber<any>) {\n    const { hasError, thrownError, isStopped } = this;\n    if (hasError) {\n      subscriber.error(thrownError);\n    } else if (isStopped) {\n      subscriber.complete();\n    }\n  }\n\n  /**\n   * Creates a new Observable with this Subject as the source. You can do this\n   * to create custom Observer-side logic of the Subject and conceal it from\n   * code that uses the Observable.\n   * @return {Observable} Observable that the Subject casts to\n   */\n  asObservable(): Observable<T> {\n    const observable: any = new Observable<T>();\n    observable.source = this;\n    return observable;\n  }\n}\n\n/**\n * @class AnonymousSubject<T>\n */\nexport class AnonymousSubject<T> extends Subject<T> {\n  constructor(\n    /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n    public destination?: Observer<T>,\n    source?: Observable<T>\n  ) {\n    super();\n    this.source = source;\n  }\n\n  next(value: T) {\n    this.destination?.next?.(value);\n  }\n\n  error(err: any) {\n    this.destination?.error?.(err);\n  }\n\n  complete() {\n    this.destination?.complete?.();\n  }\n\n  /** @internal */\n  protected _subscribe(subscriber: Subscriber<T>): Subscription {\n    return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n  }\n}\n","import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject<T>\n */\nexport class BehaviorSubject<T> extends Subject<T> {\n  constructor(private _value: T) {\n    super();\n  }\n\n  get value(): T {\n    return this.getValue();\n  }\n\n  /** @internal */\n  protected _subscribe(subscriber: Subscriber<T>): Subscription {\n    const subscription = super._subscribe(subscriber);\n    !subscription.closed && subscriber.next(this._value);\n    return subscription;\n  }\n\n  getValue(): T {\n    const { hasError, thrownError, _value } = this;\n    if (hasError) {\n      throw thrownError;\n    }\n    this._throwIfClosed();\n    return _value;\n  }\n\n  next(value: T): void {\n    super.next((this._value = value));\n  }\n}\n","const { isArray } = Array;\nconst { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;\n\n/**\n * Used in functions where either a list of arguments, a single array of arguments, or a\n * dictionary of arguments can be returned. Returns an object with an `args` property with\n * the arguments in an array, if it is a dictionary, it will also return the `keys` in another\n * property.\n */\nexport function argsArgArrayOrObject<T, O extends Record<string, T>>(args: T[] | [O] | [T[]]): { args: T[]; keys: string[] | null } {\n  if (args.length === 1) {\n    const first = args[0];\n    if (isArray(first)) {\n      return { args: first, keys: null };\n    }\n    if (isPOJO(first)) {\n      const keys = getKeys(first);\n      return {\n        args: keys.map((key) => first[key]),\n        keys,\n      };\n    }\n  }\n\n  return { args: args as T[], keys: null };\n}\n\nfunction isPOJO(obj: any): obj is object {\n  return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n","import { OperatorFunction } from \"../types\";\nimport { map } from \"../operators/map\";\n\nconst { isArray } = Array;\n\nfunction callOrApply<T, R>(fn: ((...values: T[]) => R), args: T|T[]): R {\n    return isArray(args) ? fn(...args) : fn(args);\n}\n\n/**\n * Used in several -- mostly deprecated -- situations where we need to \n * apply a list of arguments or a single argument to a result selector.\n */\nexport function mapOneOrManyArgs<T, R>(fn: ((...values: T[]) => R)): OperatorFunction<T|T[], R> {\n    return map(args => callOrApply(fn, args))\n}","import { Observable } from '../Observable';\nimport { ObservableInput, SchedulerLike, ObservedValueOf, ObservableInputTuple } from '../types';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { Subscriber } from '../Subscriber';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { Subscription } from '../Subscription';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nimport { createObject } from '../util/createObject';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { AnyCatcher } from '../AnyCatcher';\nimport { executeSchedule } from '../util/executeSchedule';\n\n// combineLatest(any)\n// We put this first because we need to catch cases where the user has supplied\n// _exactly `any`_ as the argument. Since `any` literally matches _anything_,\n// we don't want it to randomly hit one of the other type signatures below,\n// as we have no idea at build-time what type we should be returning when given an any.\n\n/**\n * You have passed `any` here, we can't figure out if it is\n * an array or an object, so you're getting `unknown`. Use better types.\n * @param arg Something typed as `any`\n */\nexport function combineLatest<T extends AnyCatcher>(arg: T): Observable<unknown>;\n\n// combineLatest([a, b, c])\nexport function combineLatest(sources: []): Observable<never>;\nexport function combineLatest<A extends readonly unknown[]>(sources: readonly [...ObservableInputTuple<A>]): Observable<A>;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function combineLatest<A extends readonly unknown[], R>(\n  sources: readonly [...ObservableInputTuple<A>],\n  resultSelector: (...values: A) => R,\n  scheduler: SchedulerLike\n): Observable<R>;\nexport function combineLatest<A extends readonly unknown[], R>(\n  sources: readonly [...ObservableInputTuple<A>],\n  resultSelector: (...values: A) => R\n): Observable<R>;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function combineLatest<A extends readonly unknown[]>(\n  sources: readonly [...ObservableInputTuple<A>],\n  scheduler: SchedulerLike\n): Observable<A>;\n\n// combineLatest(a, b, c)\n/** @deprecated Pass an array of sources instead. The rest-parameters signature will be removed in v8. Details: https://rxjs.dev/deprecations/array-argument */\nexport function combineLatest<A extends readonly unknown[]>(...sources: [...ObservableInputTuple<A>]): Observable<A>;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function combineLatest<A extends readonly unknown[], R>(\n  ...sourcesAndResultSelectorAndScheduler: [...ObservableInputTuple<A>, (...values: A) => R, SchedulerLike]\n): Observable<R>;\n/** @deprecated Pass an array of sources instead. The rest-parameters signature will be removed in v8. Details: https://rxjs.dev/deprecations/array-argument */\nexport function combineLatest<A extends readonly unknown[], R>(\n  ...sourcesAndResultSelector: [...ObservableInputTuple<A>, (...values: A) => R]\n): Observable<R>;\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function combineLatest<A extends readonly unknown[]>(\n  ...sourcesAndScheduler: [...ObservableInputTuple<A>, SchedulerLike]\n): Observable<A>;\n\n// combineLatest({a, b, c})\nexport function combineLatest(sourcesObject: { [K in any]: never }): Observable<never>;\nexport function combineLatest<T extends Record<string, ObservableInput<any>>>(\n  sourcesObject: T\n): Observable<{ [K in keyof T]: ObservedValueOf<T[K]> }>;\n\n/**\n * Combines multiple Observables to create an Observable whose values are\n * calculated from the latest values of each of its input Observables.\n *\n * <span class=\"informal\">Whenever any input Observable emits a value, it\n * computes a formula using the latest values from all the inputs, then emits\n * the output of that formula.</span>\n *\n * ![](combineLatest.png)\n *\n * `combineLatest` combines the values from all the Observables passed in the\n * observables array. This is done by subscribing to each Observable in order and,\n * whenever any Observable emits, collecting an array of the most recent\n * values from each Observable. So if you pass `n` Observables to this operator,\n * the returned Observable will always emit an array of `n` values, in an order\n * corresponding to the order of the passed Observables (the value from the first Observable\n * will be at index 0 of the array and so on).\n *\n * Static version of `combineLatest` accepts an array of Observables. Note that an array of\n * Observables is a good choice, if you don't know beforehand how many Observables\n * you will combine. Passing an empty array will result in an Observable that\n * completes immediately.\n *\n * To ensure the output array always has the same length, `combineLatest` will\n * actually wait for all input Observables to emit at least once,\n * before it starts emitting results. This means if some Observable emits\n * values before other Observables started emitting, all these values but the last\n * will be lost. On the other hand, if some Observable does not emit a value but\n * completes, resulting Observable will complete at the same moment without\n * emitting anything, since it will now be impossible to include a value from the\n * completed Observable in the resulting array. Also, if some input Observable does\n * not emit any value and never completes, `combineLatest` will also never emit\n * and never complete, since, again, it will wait for all streams to emit some\n * value.\n *\n * If at least one Observable was passed to `combineLatest` and all passed Observables\n * emitted something, the resulting Observable will complete when all combined\n * streams complete. So even if some Observable completes, the result of\n * `combineLatest` will still emit values when other Observables do. In case\n * of a completed Observable, its value from now on will always be the last\n * emitted value. On the other hand, if any Observable errors, `combineLatest`\n * will error immediately as well, and all other Observables will be unsubscribed.\n *\n * ## Examples\n *\n * Combine two timer Observables\n *\n * ```ts\n * import { timer, combineLatest } from 'rxjs';\n *\n * const firstTimer = timer(0, 1000); // emit 0, 1, 2... after every second, starting from now\n * const secondTimer = timer(500, 1000); // emit 0, 1, 2... after every second, starting 0,5s from now\n * const combinedTimers = combineLatest([firstTimer, secondTimer]);\n * combinedTimers.subscribe(value => console.log(value));\n * // Logs\n * // [0, 0] after 0.5s\n * // [1, 0] after 1s\n * // [1, 1] after 1.5s\n * // [2, 1] after 2s\n * ```\n *\n * Combine a dictionary of Observables\n *\n * ```ts\n * import { of, delay, startWith, combineLatest } from 'rxjs';\n *\n * const observables = {\n *   a: of(1).pipe(delay(1000), startWith(0)),\n *   b: of(5).pipe(delay(5000), startWith(0)),\n *   c: of(10).pipe(delay(10000), startWith(0))\n * };\n * const combined = combineLatest(observables);\n * combined.subscribe(value => console.log(value));\n * // Logs\n * // { a: 0, b: 0, c: 0 } immediately\n * // { a: 1, b: 0, c: 0 } after 1s\n * // { a: 1, b: 5, c: 0 } after 5s\n * // { a: 1, b: 5, c: 10 } after 10s\n * ```\n *\n * Combine an array of Observables\n *\n * ```ts\n * import { of, delay, startWith, combineLatest } from 'rxjs';\n *\n * const observables = [1, 5, 10].map(\n *   n => of(n).pipe(\n *     delay(n * 1000), // emit 0 and then emit n after n seconds\n *     startWith(0)\n *   )\n * );\n * const combined = combineLatest(observables);\n * combined.subscribe(value => console.log(value));\n * // Logs\n * // [0, 0, 0] immediately\n * // [1, 0, 0] after 1s\n * // [1, 5, 0] after 5s\n * // [1, 5, 10] after 10s\n * ```\n *\n * Use map operator to dynamically calculate the Body-Mass Index\n *\n * ```ts\n * import { of, combineLatest, map } from 'rxjs';\n *\n * const weight = of(70, 72, 76, 79, 75);\n * const height = of(1.76, 1.77, 1.78);\n * const bmi = combineLatest([weight, height]).pipe(\n *   map(([w, h]) => w / (h * h)),\n * );\n * bmi.subscribe(x => console.log('BMI is ' + x));\n *\n * // With output to console:\n * // BMI is 24.212293388429753\n * // BMI is 23.93948099205209\n * // BMI is 23.671253629592222\n * ```\n *\n * @see {@link combineLatestAll}\n * @see {@link merge}\n * @see {@link withLatestFrom}\n *\n * @param {ObservableInput} [observables] An array of input Observables to combine with each other.\n * An array of Observables must be given as the first argument.\n * @param {function} [project] An optional function to project the values from\n * the combined latest values into a new value on the output Observable.\n * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to\n * each input Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n */\nexport function combineLatest<O extends ObservableInput<any>, R>(...args: any[]): Observable<R> | Observable<ObservedValueOf<O>[]> {\n  const scheduler = popScheduler(args);\n  const resultSelector = popResultSelector(args);\n\n  const { args: observables, keys } = argsArgArrayOrObject(args);\n\n  if (observables.length === 0) {\n    // If no observables are passed, or someone has passed an empty array\n    // of observables, or even an empty object POJO, we need to just\n    // complete (EMPTY), but we have to honor the scheduler provided if any.\n    return from([], scheduler as any);\n  }\n\n  const result = new Observable<ObservedValueOf<O>[]>(\n    combineLatestInit(\n      observables as ObservableInput<ObservedValueOf<O>>[],\n      scheduler,\n      keys\n        ? // A handler for scrubbing the array of args into a dictionary.\n          (values) => createObject(keys, values)\n        : // A passthrough to just return the array\n          identity\n    )\n  );\n\n  return resultSelector ? (result.pipe(mapOneOrManyArgs(resultSelector)) as Observable<R>) : result;\n}\n\nexport function combineLatestInit(\n  observables: ObservableInput<any>[],\n  scheduler?: SchedulerLike,\n  valueTransform: (values: any[]) => any = identity\n) {\n  return (subscriber: Subscriber<any>) => {\n    // The outer subscription. We're capturing this in a function\n    // because we may have to schedule it.\n    maybeSchedule(\n      scheduler,\n      () => {\n        const { length } = observables;\n        // A store for the values each observable has emitted so far. We match observable to value on index.\n        const values = new Array(length);\n        // The number of currently active subscriptions, as they complete, we decrement this number to see if\n        // we are all done combining values, so we can complete the result.\n        let active = length;\n        // The number of inner sources that still haven't emitted the first value\n        // We need to track this because all sources need to emit one value in order\n        // to start emitting values.\n        let remainingFirstValues = length;\n        // The loop to kick off subscription. We're keying everything on index `i` to relate the observables passed\n        // in to the slot in the output array or the key in the array of keys in the output dictionary.\n        for (let i = 0; i < length; i++) {\n          maybeSchedule(\n            scheduler,\n            () => {\n              const source = from(observables[i], scheduler as any);\n              let hasFirstValue = false;\n              source.subscribe(\n                createOperatorSubscriber(\n                  subscriber,\n                  (value) => {\n                    // When we get a value, record it in our set of values.\n                    values[i] = value;\n                    if (!hasFirstValue) {\n                      // If this is our first value, record that.\n                      hasFirstValue = true;\n                      remainingFirstValues--;\n                    }\n                    if (!remainingFirstValues) {\n                      // We're not waiting for any more\n                      // first values, so we can emit!\n                      subscriber.next(valueTransform(values.slice()));\n                    }\n                  },\n                  () => {\n                    if (!--active) {\n                      // We only complete the result if we have no more active\n                      // inner observables.\n                      subscriber.complete();\n                    }\n                  }\n                )\n              );\n            },\n            subscriber\n          );\n        }\n      },\n      subscriber\n    );\n  };\n}\n\n/**\n * A small utility to handle the couple of locations where we want to schedule if a scheduler was provided,\n * but we don't if there was no scheduler.\n */\nfunction maybeSchedule(scheduler: SchedulerLike | undefined, execute: () => void, subscription: Subscription) {\n  if (scheduler) {\n    executeSchedule(subscription, scheduler, execute);\n  } else {\n    execute();\n  }\n}\n","export function createObject(keys: string[], values: any[]) {\n  return keys.reduce((result, key, i) => ((result[key] = values[i]), result), {} as any);\n}\n","import { MonoTypeOperatorFunction, Observer } from '../types';\nimport { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\n\n/**\n * An extension to the {@link Observer} interface used only by the {@link tap} operator.\n *\n * It provides a useful set of callbacks a user can register to do side-effects in\n * cases other than what the usual {@link Observer} callbacks are\n * ({@link guide/glossary-and-semantics#next next},\n * {@link guide/glossary-and-semantics#error error} and/or\n * {@link guide/glossary-and-semantics#complete complete}).\n *\n * ## Example\n *\n * ```ts\n * import { fromEvent, switchMap, tap, interval, take } from 'rxjs';\n *\n * const source$ = fromEvent(document, 'click');\n * const result$ = source$.pipe(\n *   switchMap((_, i) => i % 2 === 0\n *     ? fromEvent(document, 'mousemove').pipe(\n *         tap({\n *           subscribe: () => console.log('Subscribed to the mouse move events after click #' + i),\n *           unsubscribe: () => console.log('Mouse move events #' + i + ' unsubscribed'),\n *           finalize: () => console.log('Mouse move events #' + i + ' finalized')\n *         })\n *       )\n *     : interval(1_000).pipe(\n *         take(5),\n *         tap({\n *           subscribe: () => console.log('Subscribed to the 1-second interval events after click #' + i),\n *           unsubscribe: () => console.log('1-second interval events #' + i + ' unsubscribed'),\n *           finalize: () => console.log('1-second interval events #' + i + ' finalized')\n *         })\n *       )\n *   )\n * );\n *\n * const subscription = result$.subscribe({\n *   next: console.log\n * });\n *\n * setTimeout(() => {\n *   console.log('Unsubscribe after 60 seconds');\n *   subscription.unsubscribe();\n * }, 60_000);\n * ```\n */\nexport interface TapObserver<T> extends Observer<T> {\n  /**\n   * The callback that `tap` operator invokes at the moment when the source Observable\n   * gets subscribed to.\n   */\n  subscribe: () => void;\n  /**\n   * The callback that `tap` operator invokes when an explicit\n   * {@link guide/glossary-and-semantics#unsubscription unsubscribe} happens. It won't get invoked on\n   * `error` or `complete` events.\n   */\n  unsubscribe: () => void;\n  /**\n   * The callback that `tap` operator invokes when any kind of\n   * {@link guide/glossary-and-semantics#finalization finalization} happens - either when\n   * the source Observable `error`s or `complete`s or when it gets explicitly unsubscribed\n   * by the user. There is no difference in using this callback or the {@link finalize}\n   * operator, but if you're already using `tap` operator, you can use this callback\n   * instead. You'd get the same result in either case.\n   */\n  finalize: () => void;\n}\nexport function tap<T>(observerOrNext?: Partial<TapObserver<T>> | ((value: T) => void)): MonoTypeOperatorFunction<T>;\n/** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\nexport function tap<T>(\n  next?: ((value: T) => void) | null,\n  error?: ((error: any) => void) | null,\n  complete?: (() => void) | null\n): MonoTypeOperatorFunction<T>;\n\n/**\n * Used to perform side-effects for notifications from the source observable\n *\n * <span class=\"informal\">Used when you want to affect outside state with a notification without altering the notification</span>\n *\n * ![](tap.png)\n *\n * Tap is designed to allow the developer a designated place to perform side effects. While you _could_ perform side-effects\n * inside of a `map` or a `mergeMap`, that would make their mapping functions impure, which isn't always a big deal, but will\n * make it so you can't do things like memoize those functions. The `tap` operator is designed solely for such side-effects to\n * help you remove side-effects from other operations.\n *\n * For any notification, next, error, or complete, `tap` will call the appropriate callback you have provided to it, via a function\n * reference, or a partial observer, then pass that notification down the stream.\n *\n * The observable returned by `tap` is an exact mirror of the source, with one exception: Any error that occurs -- synchronously -- in a handler\n * provided to `tap` will be emitted as an error from the returned observable.\n *\n * > Be careful! You can mutate objects as they pass through the `tap` operator's handlers.\n *\n * The most common use of `tap` is actually for debugging. You can place a `tap(console.log)` anywhere\n * in your observable `pipe`, log out the notifications as they are emitted by the source returned by the previous\n * operation.\n *\n * ## Examples\n *\n * Check a random number before it is handled. Below is an observable that will use a random number between 0 and 1,\n * and emit `'big'` or `'small'` depending on the size of that number. But we wanted to log what the original number\n * was, so we have added a `tap(console.log)`.\n *\n * ```ts\n * import { of, tap, map } from 'rxjs';\n *\n * of(Math.random()).pipe(\n *   tap(console.log),\n *   map(n => n > 0.5 ? 'big' : 'small')\n * ).subscribe(console.log);\n * ```\n *\n * Using `tap` to analyze a value and force an error. Below is an observable where in our system we only\n * want to emit numbers 3 or less we get from another source. We can force our observable to error\n * using `tap`.\n *\n * ```ts\n * import { of, tap } from 'rxjs';\n *\n * const source = of(1, 2, 3, 4, 5);\n *\n * source.pipe(\n *   tap(n => {\n *     if (n > 3) {\n *       throw new TypeError(`Value ${ n } is greater than 3`);\n *     }\n *   })\n * )\n * .subscribe({ next: console.log, error: err => console.log(err.message) });\n * ```\n *\n * We want to know when an observable completes before moving on to the next observable. The system\n * below will emit a random series of `'X'` characters from 3 different observables in sequence. The\n * only way we know when one observable completes and moves to the next one, in this case, is because\n * we have added a `tap` with the side effect of logging to console.\n *\n * ```ts\n * import { of, concatMap, interval, take, map, tap } from 'rxjs';\n *\n * of(1, 2, 3).pipe(\n *   concatMap(n => interval(1000).pipe(\n *     take(Math.round(Math.random() * 10)),\n *     map(() => 'X'),\n *     tap({ complete: () => console.log(`Done with ${ n }`) })\n *   ))\n * )\n * .subscribe(console.log);\n * ```\n *\n * @see {@link finalize}\n * @see {@link TapObserver}\n *\n * @param observerOrNext A next handler or partial observer\n * @param error An error handler\n * @param complete A completion handler\n * @return A function that returns an Observable identical to the source, but\n * runs the specified Observer or callback(s) for each item.\n */\nexport function tap<T>(\n  observerOrNext?: Partial<TapObserver<T>> | ((value: T) => void) | null,\n  error?: ((e: any) => void) | null,\n  complete?: (() => void) | null\n): MonoTypeOperatorFunction<T> {\n  // We have to check to see not only if next is a function,\n  // but if error or complete were passed. This is because someone\n  // could technically call tap like `tap(null, fn)` or `tap(null, null, fn)`.\n  const tapObserver =\n    isFunction(observerOrNext) || error || complete\n      ? // tslint:disable-next-line: no-object-literal-type-assertion\n        ({ next: observerOrNext as Exclude<typeof observerOrNext, Partial<TapObserver<T>>>, error, complete } as Partial<TapObserver<T>>)\n      : observerOrNext;\n\n  return tapObserver\n    ? operate((source, subscriber) => {\n        tapObserver.subscribe?.();\n        let isUnsub = true;\n        source.subscribe(\n          createOperatorSubscriber(\n            subscriber,\n            (value) => {\n              tapObserver.next?.(value);\n              subscriber.next(value);\n            },\n            () => {\n              isUnsub = false;\n              tapObserver.complete?.();\n              subscriber.complete();\n            },\n            (err) => {\n              isUnsub = false;\n              tapObserver.error?.(err);\n              subscriber.error(err);\n            },\n            () => {\n              if (isUnsub) {\n                tapObserver.unsubscribe?.();\n              }\n              tapObserver.finalize?.();\n            }\n          )\n        );\n      })\n    : // Tap was called with no valid tap observer or handler\n      // (e.g. `tap(null, null, null)` or `tap(null)` or `tap()`)\n      // so we're going to just mirror the source.\n      identity;\n}\n","import { scanInternals } from './scanInternals';\nimport { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\n\nexport function reduce<V, A = V>(accumulator: (acc: A | V, value: V, index: number) => A): OperatorFunction<V, V | A>;\nexport function reduce<V, A>(accumulator: (acc: A, value: V, index: number) => A, seed: A): OperatorFunction<V, A>;\nexport function reduce<V, A, S = A>(accumulator: (acc: A | S, value: V, index: number) => A, seed: S): OperatorFunction<V, A>;\n\n/**\n * Applies an accumulator function over the source Observable, and returns the\n * accumulated result when the source completes, given an optional seed value.\n *\n * <span class=\"informal\">Combines together all values emitted on the source,\n * using an accumulator function that knows how to join a new source value into\n * the accumulation from the past.</span>\n *\n * ![](reduce.png)\n *\n * Like\n * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce),\n * `reduce` applies an `accumulator` function against an accumulation and each\n * value of the source Observable (from the past) to reduce it to a single\n * value, emitted on the output Observable. Note that `reduce` will only emit\n * one value, only when the source Observable completes. It is equivalent to\n * applying operator {@link scan} followed by operator {@link last}.\n *\n * Returns an Observable that applies a specified `accumulator` function to each\n * item emitted by the source Observable. If a `seed` value is specified, then\n * that value will be used as the initial value for the accumulator. If no seed\n * value is specified, the first item of the source is used as the seed.\n *\n * ## Example\n *\n * Count the number of click events that happened in 5 seconds\n *\n * ```ts\n * import { fromEvent, takeUntil, interval, map, reduce } from 'rxjs';\n *\n * const clicksInFiveSeconds = fromEvent(document, 'click')\n *   .pipe(takeUntil(interval(5000)));\n *\n * const ones = clicksInFiveSeconds.pipe(map(() => 1));\n * const seed = 0;\n * const count = ones.pipe(reduce((acc, one) => acc + one, seed));\n *\n * count.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link count}\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link scan}\n *\n * @param {function(acc: A, value: V, index: number): A} accumulator The accumulator function\n * called on each source value.\n * @param {A} [seed] The initial accumulation value.\n * @return A function that returns an Observable that emits a single value that\n * is the result of accumulating the values emitted by the source Observable.\n */\nexport function reduce<V, A>(accumulator: (acc: V | A, value: V, index: number) => A, seed?: any): OperatorFunction<V, V | A> {\n  return operate(scanInternals(accumulator, seed, arguments.length >= 2, false, true));\n}\n","import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * A basic scan operation. This is used for `scan` and `reduce`.\n * @param accumulator The accumulator to use\n * @param seed The seed value for the state to accumulate\n * @param hasSeed Whether or not a seed was provided\n * @param emitOnNext Whether or not to emit the state on next\n * @param emitBeforeComplete Whether or not to emit the before completion\n */\n\nexport function scanInternals<V, A, S>(\n  accumulator: (acc: V | A | S, value: V, index: number) => A,\n  seed: S,\n  hasSeed: boolean,\n  emitOnNext: boolean,\n  emitBeforeComplete?: undefined | true\n) {\n  return (source: Observable<V>, subscriber: Subscriber<any>) => {\n    // Whether or not we have state yet. This will only be\n    // false before the first value arrives if we didn't get\n    // a seed value.\n    let hasState = hasSeed;\n    // The state that we're tracking, starting with the seed,\n    // if there is one, and then updated by the return value\n    // from the accumulator on each emission.\n    let state: any = seed;\n    // An index to pass to the accumulator function.\n    let index = 0;\n\n    // Subscribe to our source. All errors and completions are passed through.\n    source.subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (value) => {\n          // Always increment the index.\n          const i = index++;\n          // Set the state\n          state = hasState\n            ? // We already have state, so we can get the new state from the accumulator\n              accumulator(state, value, i)\n            : // We didn't have state yet, a seed value was not provided, so\n\n              // we set the state to the first value, and mark that we have state now\n              ((hasState = true), value);\n\n          // Maybe send it to the consumer.\n          emitOnNext && subscriber.next(state);\n        },\n        // If an onComplete was given, call it, otherwise\n        // just pass through the complete notification to the consumer.\n        emitBeforeComplete &&\n          (() => {\n            hasState && subscriber.next(state);\n            subscriber.complete();\n          })\n      )\n    );\n  };\n}\n","import { reduce } from './reduce';\nimport { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\n\nconst arrReducer = (arr: any[], value: any) => (arr.push(value), arr);\n\n/**\n * Collects all source emissions and emits them as an array when the source completes.\n *\n * <span class=\"informal\">Get all values inside an array when the source completes</span>\n *\n * ![](toArray.png)\n *\n * `toArray` will wait until the source Observable completes before emitting\n * the array containing all emissions. When the source Observable errors no\n * array will be emitted.\n *\n * ## Example\n *\n * ```ts\n * import { interval, take, toArray } from 'rxjs';\n *\n * const source = interval(1000);\n * const example = source.pipe(\n *   take(10),\n *   toArray()\n * );\n *\n * example.subscribe(value => console.log(value));\n *\n * // output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]\n * ```\n *\n * @return A function that returns an Observable that emits an array of items\n * emitted by the source Observable when source completes.\n */\nexport function toArray<T>(): OperatorFunction<T, T[]> {\n  // Because arrays are mutable, and we're mutating the array in this\n  // reducer process, we have to encapsulate the creation of the initial\n  // array within this `operate` function.\n  return operate((source, subscriber) => {\n    reduce(arrReducer, [] as T[])(source).subscribe(subscriber);\n  });\n}\n","import { lazyMethod, lazyMethods } from '@polkadot/util';\nexport function lazyDeriveSection(result, section, getKeys, creator) {\n    lazyMethod(result, section, () => lazyMethods({}, getKeys(section), (method) => creator(section, method)));\n}\n","import { stringify } from './stringify.js';\nfunction defaultGetId() {\n    return 'none';\n}\n/**\n * @name memoize\n * @description Memomize the function with a specific instanceId\n */\nexport function memoize(fn, { getInstanceId = defaultGetId } = {}) {\n    const cache = {};\n    const memoized = (...args) => {\n        const stringParams = stringify(args);\n        const instanceId = getInstanceId();\n        if (!cache[instanceId]) {\n            cache[instanceId] = {};\n        }\n        if (cache[instanceId][stringParams] === undefined) {\n            cache[instanceId][stringParams] = fn(...args);\n        }\n        return cache[instanceId][stringParams];\n    };\n    memoized.unmemoize = (...args) => {\n        const stringParams = stringify(args);\n        const instanceId = getInstanceId();\n        if (cache[instanceId]?.[stringParams] !== undefined) {\n            delete cache[instanceId][stringParams];\n        }\n    };\n    return memoized;\n}\n","import { Observable } from '../Observable';\n\nimport { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { Subscription } from '../Subscription';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\n\n/* tslint:disable:max-line-length */\nexport function catchError<T, O extends ObservableInput<any>>(\n  selector: (err: any, caught: Observable<T>) => O\n): OperatorFunction<T, T | ObservedValueOf<O>>;\n/* tslint:enable:max-line-length */\n\n/**\n * Catches errors on the observable to be handled by returning a new observable or throwing an error.\n *\n * <span class=\"informal\">\n * It only listens to the error channel and ignores notifications.\n * Handles errors from the source observable, and maps them to a new observable.\n * The error may also be rethrown, or a new error can be thrown to emit an error from the result.\n * </span>\n *\n * ![](catch.png)\n *\n * This operator handles errors, but forwards along all other events to the resulting observable.\n * If the source observable terminates with an error, it will map that error to a new observable,\n * subscribe to it, and forward all of its events to the resulting observable.\n *\n * ## Examples\n *\n * Continue with a different Observable when there's an error\n *\n * ```ts\n * import { of, map, catchError } from 'rxjs';\n *\n * of(1, 2, 3, 4, 5)\n *   .pipe(\n *     map(n => {\n *       if (n === 4) {\n *         throw 'four!';\n *       }\n *       return n;\n *     }),\n *     catchError(err => of('I', 'II', 'III', 'IV', 'V'))\n *   )\n *   .subscribe(x => console.log(x));\n *   // 1, 2, 3, I, II, III, IV, V\n * ```\n *\n * Retry the caught source Observable again in case of error, similar to `retry()` operator\n *\n * ```ts\n * import { of, map, catchError, take } from 'rxjs';\n *\n * of(1, 2, 3, 4, 5)\n *   .pipe(\n *     map(n => {\n *       if (n === 4) {\n *         throw 'four!';\n *       }\n *       return n;\n *     }),\n *     catchError((err, caught) => caught),\n *     take(30)\n *   )\n *   .subscribe(x => console.log(x));\n *   // 1, 2, 3, 1, 2, 3, ...\n * ```\n *\n * Throw a new error when the source Observable throws an error\n *\n * ```ts\n * import { of, map, catchError } from 'rxjs';\n *\n * of(1, 2, 3, 4, 5)\n *   .pipe(\n *     map(n => {\n *       if (n === 4) {\n *         throw 'four!';\n *       }\n *       return n;\n *     }),\n *     catchError(err => {\n *       throw 'error in source. Details: ' + err;\n *     })\n *   )\n *   .subscribe({\n *     next: x => console.log(x),\n *     error: err => console.log(err)\n *   });\n *   // 1, 2, 3, error in source. Details: four!\n * ```\n *\n * @see {@link onErrorResumeNext}\n * @see {@link repeat}\n * @see {@link repeatWhen}\n * @see {@link retry }\n * @see {@link retryWhen}\n *\n * @param {function} selector a function that takes as arguments `err`, which is the error, and `caught`, which\n * is the source observable, in case you'd like to \"retry\" that observable by returning it again. Whatever observable\n * is returned by the `selector` will be used to continue the observable chain.\n * @return A function that returns an Observable that originates from either\n * the source or the Observable returned by the `selector` function.\n */\nexport function catchError<T, O extends ObservableInput<any>>(\n  selector: (err: any, caught: Observable<T>) => O\n): OperatorFunction<T, T | ObservedValueOf<O>> {\n  return operate((source, subscriber) => {\n    let innerSub: Subscription | null = null;\n    let syncUnsub = false;\n    let handledResult: Observable<ObservedValueOf<O>>;\n\n    innerSub = source.subscribe(\n      createOperatorSubscriber(subscriber, undefined, undefined, (err) => {\n        handledResult = innerFrom(selector(err, catchError(selector)(source)));\n        if (innerSub) {\n          innerSub.unsubscribe();\n          innerSub = null;\n          handledResult.subscribe(subscriber);\n        } else {\n          // We don't have an innerSub yet, that means the error was synchronous\n          // because the subscribe call hasn't returned yet.\n          syncUnsub = true;\n        }\n      })\n    );\n\n    if (syncUnsub) {\n      // We have a synchronous error, we need to make sure to\n      // finalize right away. This ensures that callbacks in the `finalize` operator are called\n      // at the right time, and that finalization occurs at the expected\n      // time between the source error and the subscription to the\n      // next observable.\n      innerSub.unsubscribe();\n      innerSub = null;\n      handledResult!.subscribe(subscriber);\n    }\n  });\n}\n","import { MonoTypeOperatorFunction } from '../types';\nimport { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\nexport function distinctUntilChanged<T>(comparator?: (previous: T, current: T) => boolean): MonoTypeOperatorFunction<T>;\nexport function distinctUntilChanged<T, K>(\n  comparator: (previous: K, current: K) => boolean,\n  keySelector: (value: T) => K\n): MonoTypeOperatorFunction<T>;\n\n/**\n * Returns a result {@link Observable} that emits all values pushed by the source observable if they\n * are distinct in comparison to the last value the result observable emitted.\n *\n * When provided without parameters or with the first parameter (`{@link distinctUntilChanged#comparator comparator}`),\n * it behaves like this:\n *\n * 1. It will always emit the first value from the source.\n * 2. For all subsequent values pushed by the source, they will be compared to the previously emitted values\n *    using the provided `comparator` or an `===` equality check.\n * 3. If the value pushed by the source is determined to be unequal by this check, that value is emitted and\n *    becomes the new \"previously emitted value\" internally.\n *\n * When the second parameter (`{@link distinctUntilChanged#keySelector keySelector}`) is provided, the behavior\n * changes:\n *\n * 1. It will always emit the first value from the source.\n * 2. The `keySelector` will be run against all values, including the first value.\n * 3. For all values after the first, the selected key will be compared against the key selected from\n *    the previously emitted value using the `comparator`.\n * 4. If the keys are determined to be unequal by this check, the value (not the key), is emitted\n *    and the selected key from that value is saved for future comparisons against other keys.\n *\n * ## Examples\n *\n * A very basic example with no `{@link distinctUntilChanged#comparator comparator}`. Note that `1` is emitted more than once,\n * because it's distinct in comparison to the _previously emitted_ value,\n * not in comparison to _all other emitted values_.\n *\n * ```ts\n * import { of, distinctUntilChanged } from 'rxjs';\n *\n * of(1, 1, 1, 2, 2, 2, 1, 1, 3, 3)\n *   .pipe(distinctUntilChanged())\n *   .subscribe(console.log);\n * // Logs: 1, 2, 1, 3\n * ```\n *\n * With a `{@link distinctUntilChanged#comparator comparator}`, you can do custom comparisons. Let's say\n * you only want to emit a value when all of its components have\n * changed:\n *\n * ```ts\n * import { of, distinctUntilChanged } from 'rxjs';\n *\n * const totallyDifferentBuilds$ = of(\n *   { engineVersion: '1.1.0', transmissionVersion: '1.2.0' },\n *   { engineVersion: '1.1.0', transmissionVersion: '1.4.0' },\n *   { engineVersion: '1.3.0', transmissionVersion: '1.4.0' },\n *   { engineVersion: '1.3.0', transmissionVersion: '1.5.0' },\n *   { engineVersion: '2.0.0', transmissionVersion: '1.5.0' }\n * ).pipe(\n *   distinctUntilChanged((prev, curr) => {\n *     return (\n *       prev.engineVersion === curr.engineVersion ||\n *       prev.transmissionVersion === curr.transmissionVersion\n *     );\n *   })\n * );\n *\n * totallyDifferentBuilds$.subscribe(console.log);\n *\n * // Logs:\n * // { engineVersion: '1.1.0', transmissionVersion: '1.2.0' }\n * // { engineVersion: '1.3.0', transmissionVersion: '1.4.0' }\n * // { engineVersion: '2.0.0', transmissionVersion: '1.5.0' }\n * ```\n *\n * You can also provide a custom `{@link distinctUntilChanged#comparator comparator}` to check that emitted\n * changes are only in one direction. Let's say you only want to get\n * the next record temperature:\n *\n * ```ts\n * import { of, distinctUntilChanged } from 'rxjs';\n *\n * const temps$ = of(30, 31, 20, 34, 33, 29, 35, 20);\n *\n * const recordHighs$ = temps$.pipe(\n *   distinctUntilChanged((prevHigh, temp) => {\n *     // If the current temp is less than\n *     // or the same as the previous record,\n *     // the record hasn't changed.\n *     return temp <= prevHigh;\n *   })\n * );\n *\n * recordHighs$.subscribe(console.log);\n * // Logs: 30, 31, 34, 35\n * ```\n *\n * Selecting update events only when the `updatedBy` field shows\n * the account changed hands.\n *\n * ```ts\n * import { of, distinctUntilChanged } from 'rxjs';\n *\n * // A stream of updates to a given account\n * const accountUpdates$ = of(\n *   { updatedBy: 'blesh', data: [] },\n *   { updatedBy: 'blesh', data: [] },\n *   { updatedBy: 'ncjamieson', data: [] },\n *   { updatedBy: 'ncjamieson', data: [] },\n *   { updatedBy: 'blesh', data: [] }\n * );\n *\n * // We only want the events where it changed hands\n * const changedHands$ = accountUpdates$.pipe(\n *   distinctUntilChanged(undefined, update => update.updatedBy)\n * );\n *\n * changedHands$.subscribe(console.log);\n * // Logs:\n * // { updatedBy: 'blesh', data: Array[0] }\n * // { updatedBy: 'ncjamieson', data: Array[0] }\n * // { updatedBy: 'blesh', data: Array[0] }\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilKeyChanged}\n *\n * @param comparator A function used to compare the previous and current keys for\n * equality. Defaults to a `===` check.\n * @param keySelector Used to select a key value to be passed to the `comparator`.\n *\n * @return A function that returns an Observable that emits items from the\n * source Observable with distinct values.\n */\nexport function distinctUntilChanged<T, K>(\n  comparator?: (previous: K, current: K) => boolean,\n  keySelector: (value: T) => K = identity as (value: T) => K\n): MonoTypeOperatorFunction<T> {\n  // We've been allowing `null` do be passed as the `compare`, so we can't do\n  // a default value for the parameter, because that will only work\n  // for `undefined`.\n  comparator = comparator ?? defaultCompare;\n\n  return operate((source, subscriber) => {\n    // The previous key, used to compare against keys selected\n    // from new arrivals to determine \"distinctiveness\".\n    let previousKey: K;\n    // Whether or not this is the first value we've gotten.\n    let first = true;\n\n    source.subscribe(\n      createOperatorSubscriber(subscriber, (value) => {\n        // We always call the key selector.\n        const currentKey = keySelector(value);\n\n        // If it's the first value, we always emit it.\n        // Otherwise, we compare this key to the previous key, and\n        // if the comparer returns false, we emit.\n        if (first || !comparator!(previousKey, currentKey)) {\n          // Update our state *before* we emit the value\n          // as emission can be the source of re-entrant code\n          // in functional libraries like this. We only really\n          // need to do this if it's the first value, or if the\n          // key we're tracking in previous needs to change.\n          first = false;\n          previousKey = currentKey;\n\n          // Emit the value!\n          subscriber.next(value);\n        }\n      })\n    );\n  });\n}\n\nfunction defaultCompare(a: any, b: any) {\n  return a === b;\n}\n","import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n  delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n  now() {\n    // Use the variable rather than `this` so that the function can be called\n    // without being bound to the provider.\n    return (dateTimestampProvider.delegate || Date).now();\n  },\n  delegate: undefined,\n};\n","import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject<T> extends Subject<T> {\n  private _buffer: (T | number)[] = [];\n  private _infiniteTimeWindow = true;\n\n  /**\n   * @param bufferSize The size of the buffer to replay on subscription\n   * @param windowTime The amount of time the buffered items will stay buffered\n   * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n   * calculate the amount of time something has been buffered.\n   */\n  constructor(\n    private _bufferSize = Infinity,\n    private _windowTime = Infinity,\n    private _timestampProvider: TimestampProvider = dateTimestampProvider\n  ) {\n    super();\n    this._infiniteTimeWindow = _windowTime === Infinity;\n    this._bufferSize = Math.max(1, _bufferSize);\n    this._windowTime = Math.max(1, _windowTime);\n  }\n\n  next(value: T): void {\n    const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n    if (!isStopped) {\n      _buffer.push(value);\n      !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n    }\n    this._trimBuffer();\n    super.next(value);\n  }\n\n  /** @internal */\n  protected _subscribe(subscriber: Subscriber<T>): Subscription {\n    this._throwIfClosed();\n    this._trimBuffer();\n\n    const subscription = this._innerSubscribe(subscriber);\n\n    const { _infiniteTimeWindow, _buffer } = this;\n    // We use a copy here, so reentrant code does not mutate our array while we're\n    // emitting it to a new subscriber.\n    const copy = _buffer.slice();\n    for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n      subscriber.next(copy[i] as T);\n    }\n\n    this._checkFinalizedStatuses(subscriber);\n\n    return subscription;\n  }\n\n  private _trimBuffer() {\n    const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n    // If we don't have an infinite buffer size, and we're over the length,\n    // use splice to truncate the old buffer values off. Note that we have to\n    // double the size for instances where we're not using an infinite time window\n    // because we're storing the values and the timestamps in the same array.\n    const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n    _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n    // Now, if we're not in an infinite time window, remove all values where the time is\n    // older than what is allowed.\n    if (!_infiniteTimeWindow) {\n      const now = _timestampProvider.now();\n      let last = 0;\n      // Search the array for the first timestamp that isn't expired and\n      // truncate the buffer up to that point.\n      for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n        last = i;\n      }\n      last && _buffer.splice(0, last + 1);\n    }\n  }\n}\n","import { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { Subscription } from '../Subscription';\nimport { MonoTypeOperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Make a {@link ConnectableObservable} behave like a ordinary observable and automates the way\n * you can connect to it.\n *\n * Internally it counts the subscriptions to the observable and subscribes (only once) to the source if\n * the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it\n * unsubscribes from the source. This way you can make sure that everything before the *published*\n * refCount has only a single subscription independently of the number of subscribers to the target\n * observable.\n *\n * Note that using the {@link share} operator is exactly the same as using the `multicast(() => new Subject())` operator\n * (making the observable hot) and the *refCount* operator in a sequence.\n *\n * ![](refCount.png)\n *\n * ## Example\n *\n * In the following example there are two intervals turned into connectable observables\n * by using the *publish* operator. The first one uses the *refCount* operator, the\n * second one does not use it. You will notice that a connectable observable does nothing\n * until you call its connect function.\n *\n * ```ts\n * import { interval, tap, publish, refCount } from 'rxjs';\n *\n * // Turn the interval observable into a ConnectableObservable (hot)\n * const refCountInterval = interval(400).pipe(\n *   tap(num => console.log(`refCount ${ num }`)),\n *   publish(),\n *   refCount()\n * );\n *\n * const publishedInterval = interval(400).pipe(\n *   tap(num => console.log(`publish ${ num }`)),\n *   publish()\n * );\n *\n * refCountInterval.subscribe();\n * refCountInterval.subscribe();\n * // 'refCount 0' -----> 'refCount 1' -----> etc\n * // All subscriptions will receive the same value and the tap (and\n * // every other operator) before the `publish` operator will be executed\n * // only once per event independently of the number of subscriptions.\n *\n * publishedInterval.subscribe();\n * // Nothing happens until you call .connect() on the observable.\n * ```\n *\n * @return A function that returns an Observable that automates the connection\n * to ConnectableObservable.\n * @see {@link ConnectableObservable}\n * @see {@link share}\n * @see {@link publish}\n * @deprecated Replaced with the {@link share} operator. How `share` is used\n * will depend on the connectable observable you created just prior to the\n * `refCount` operator.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function refCount<T>(): MonoTypeOperatorFunction<T> {\n  return operate((source, subscriber) => {\n    let connection: Subscription | null = null;\n\n    (source as any)._refCount++;\n\n    const refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, () => {\n      if (!source || (source as any)._refCount <= 0 || 0 < --(source as any)._refCount) {\n        connection = null;\n        return;\n      }\n\n      ///\n      // Compare the local RefCountSubscriber's connection Subscription to the\n      // connection Subscription on the shared ConnectableObservable. In cases\n      // where the ConnectableObservable source synchronously emits values, and\n      // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n      // execution continues to here before the RefCountOperator has a chance to\n      // supply the RefCountSubscriber with the shared connection Subscription.\n      // For example:\n      // ```\n      // range(0, 10).pipe(\n      //   publish(),\n      //   refCount(),\n      //   take(5),\n      // )\n      // .subscribe();\n      // ```\n      // In order to account for this case, RefCountSubscriber should only dispose\n      // the ConnectableObservable's shared connection Subscription if the\n      // connection Subscription exists, *and* either:\n      //   a. RefCountSubscriber doesn't have a reference to the shared connection\n      //      Subscription yet, or,\n      //   b. RefCountSubscriber's connection Subscription reference is identical\n      //      to the shared connection Subscription\n      ///\n\n      const sharedConnection = (source as any)._connection;\n      const conn = connection;\n      connection = null;\n\n      if (sharedConnection && (!conn || sharedConnection === conn)) {\n        sharedConnection.unsubscribe();\n      }\n\n      subscriber.unsubscribe();\n    });\n\n    source.subscribe(refCounter);\n\n    if (!refCounter.closed) {\n      connection = (source as ConnectableObservable<T>).connect();\n    }\n  });\n}\n","import { Subject } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { hasLift } from '../util/lift';\n\n/**\n * @class ConnectableObservable<T>\n * @deprecated Will be removed in v8. Use {@link connectable} to create a connectable observable.\n * If you are using the `refCount` method of `ConnectableObservable`, use the {@link share} operator\n * instead.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport class ConnectableObservable<T> extends Observable<T> {\n  protected _subject: Subject<T> | null = null;\n  protected _refCount: number = 0;\n  protected _connection: Subscription | null = null;\n\n  /**\n   * @param source The source observable\n   * @param subjectFactory The factory that creates the subject used internally.\n   * @deprecated Will be removed in v8. Use {@link connectable} to create a connectable observable.\n   * `new ConnectableObservable(source, factory)` is equivalent to\n   * `connectable(source, { connector: factory })`.\n   * When the `refCount()` method is needed, the {@link share} operator should be used instead:\n   * `new ConnectableObservable(source, factory).refCount()` is equivalent to\n   * `source.pipe(share({ connector: factory }))`.\n   * Details: https://rxjs.dev/deprecations/multicasting\n   */\n  constructor(public source: Observable<T>, protected subjectFactory: () => Subject<T>) {\n    super();\n    // If we have lift, monkey patch that here. This is done so custom observable\n    // types will compose through multicast. Otherwise the resulting observable would\n    // simply be an instance of `ConnectableObservable`.\n    if (hasLift(source)) {\n      this.lift = source.lift;\n    }\n  }\n\n  /** @internal */\n  protected _subscribe(subscriber: Subscriber<T>) {\n    return this.getSubject().subscribe(subscriber);\n  }\n\n  protected getSubject(): Subject<T> {\n    const subject = this._subject;\n    if (!subject || subject.isStopped) {\n      this._subject = this.subjectFactory();\n    }\n    return this._subject!;\n  }\n\n  protected _teardown() {\n    this._refCount = 0;\n    const { _connection } = this;\n    this._subject = this._connection = null;\n    _connection?.unsubscribe();\n  }\n\n  /**\n   * @deprecated {@link ConnectableObservable} will be removed in v8. Use {@link connectable} instead.\n   * Details: https://rxjs.dev/deprecations/multicasting\n   */\n  connect(): Subscription {\n    let connection = this._connection;\n    if (!connection) {\n      connection = this._connection = new Subscription();\n      const subject = this.getSubject();\n      connection.add(\n        this.source.subscribe(\n          createOperatorSubscriber(\n            subject as any,\n            undefined,\n            () => {\n              this._teardown();\n              subject.complete();\n            },\n            (err) => {\n              this._teardown();\n              subject.error(err);\n            },\n            () => this._teardown()\n          )\n        )\n      );\n\n      if (connection.closed) {\n        this._connection = null;\n        connection = Subscription.EMPTY;\n      }\n    }\n    return connection;\n  }\n\n  /**\n   * @deprecated {@link ConnectableObservable} will be removed in v8. Use the {@link share} operator instead.\n   * Details: https://rxjs.dev/deprecations/multicasting\n   */\n  refCount(): Observable<T> {\n    return higherOrderRefCount()(this) as Observable<T>;\n  }\n}\n","import { OperatorFunction, ObservableInput, ObservedValueOf, SubjectLike } from '../types';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { fromSubscribable } from '../observable/fromSubscribable';\n\n/**\n * An object used to configure {@link connect} operator.\n */\nexport interface ConnectConfig<T> {\n  /**\n   * A factory function used to create the Subject through which the source\n   * is multicast. By default, this creates a {@link Subject}.\n   */\n  connector: () => SubjectLike<T>;\n}\n\n/**\n * The default configuration for `connect`.\n */\nconst DEFAULT_CONFIG: ConnectConfig<unknown> = {\n  connector: () => new Subject<unknown>(),\n};\n\n/**\n * Creates an observable by multicasting the source within a function that\n * allows the developer to define the usage of the multicast prior to connection.\n *\n * This is particularly useful if the observable source you wish to multicast could\n * be synchronous or asynchronous. This sets it apart from {@link share}, which, in the\n * case of totally synchronous sources will fail to share a single subscription with\n * multiple consumers, as by the time the subscription to the result of {@link share}\n * has returned, if the source is synchronous its internal reference count will jump from\n * 0 to 1 back to 0 and reset.\n *\n * To use `connect`, you provide a `selector` function that will give you\n * a multicast observable that is not yet connected. You then use that multicast observable\n * to create a resulting observable that, when subscribed, will set up your multicast. This is\n * generally, but not always, accomplished with {@link merge}.\n *\n * Note that using a {@link takeUntil} inside of `connect`'s `selector` _might_ mean you were looking\n * to use the {@link takeWhile} operator instead.\n *\n * When you subscribe to the result of `connect`, the `selector` function will be called. After\n * the `selector` function returns, the observable it returns will be subscribed to, _then_ the\n * multicast will be connected to the source.\n *\n * ## Example\n *\n * Sharing a totally synchronous observable\n *\n * ```ts\n * import { of, tap, connect, merge, map, filter } from 'rxjs';\n *\n * const source$ = of(1, 2, 3, 4, 5).pipe(\n *   tap({\n *     subscribe: () => console.log('subscription started'),\n *     next: n => console.log(`source emitted ${ n }`)\n *   })\n * );\n *\n * source$.pipe(\n *   // Notice in here we're merging 3 subscriptions to `shared$`.\n *   connect(shared$ => merge(\n *     shared$.pipe(map(n => `all ${ n }`)),\n *     shared$.pipe(filter(n => n % 2 === 0), map(n => `even ${ n }`)),\n *     shared$.pipe(filter(n => n % 2 === 1), map(n => `odd ${ n }`))\n *   ))\n * )\n * .subscribe(console.log);\n *\n * // Expected output: (notice only one subscription)\n * 'subscription started'\n * 'source emitted 1'\n * 'all 1'\n * 'odd 1'\n * 'source emitted 2'\n * 'all 2'\n * 'even 2'\n * 'source emitted 3'\n * 'all 3'\n * 'odd 3'\n * 'source emitted 4'\n * 'all 4'\n * 'even 4'\n * 'source emitted 5'\n * 'all 5'\n * 'odd 5'\n * ```\n *\n * @param selector A function used to set up the multicast. Gives you a multicast observable\n * that is not yet connected. With that, you're expected to create and return\n * and Observable, that when subscribed to, will utilize the multicast observable.\n * After this function is executed -- and its return value subscribed to -- the\n * operator will subscribe to the source, and the connection will be made.\n * @param config The configuration object for `connect`.\n */\nexport function connect<T, O extends ObservableInput<unknown>>(\n  selector: (shared: Observable<T>) => O,\n  config: ConnectConfig<T> = DEFAULT_CONFIG\n): OperatorFunction<T, ObservedValueOf<O>> {\n  const { connector } = config;\n  return operate((source, subscriber) => {\n    const subject = connector();\n    innerFrom(selector(fromSubscribable(subject))).subscribe(subscriber);\n    subscriber.add(source.subscribe(subject));\n  });\n}\n","import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscribable } from '../types';\n\n/**\n * Used to convert a subscribable to an observable.\n *\n * Currently, this is only used within internals.\n *\n * TODO: Discuss ObservableInput supporting \"Subscribable\".\n * https://github.com/ReactiveX/rxjs/issues/5909\n *\n * @param subscribable A subscribable\n */\nexport function fromSubscribable<T>(subscribable: Subscribable<T>) {\n  return new Observable((subscriber: Subscriber<T>) => subscribable.subscribe(subscriber));\n}\n","import { Observable } from '../Observable';\nimport { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nimport { MonoTypeOperatorFunction, OperatorFunction, TimestampProvider, ObservableInput, ObservedValueOf } from '../types';\nimport { isFunction } from '../util/isFunction';\n\n/**\n * Creates a {@link ConnectableObservable} that uses a {@link ReplaySubject}\n * internally.\n *\n * @param bufferSize The buffer size for the underlying {@link ReplaySubject}.\n * @param windowTime The window time for the underlying {@link ReplaySubject}.\n * @param timestampProvider The timestamp provider for the underlying {@link ReplaySubject}.\n * @deprecated Will be removed in v8. To create a connectable observable that uses a\n * {@link ReplaySubject} under the hood, use {@link connectable}.\n * `source.pipe(publishReplay(size, time, scheduler))` is equivalent to\n * `connectable(source, { connector: () => new ReplaySubject(size, time, scheduler), resetOnDisconnect: false })`.\n * If you're using {@link refCount} after `publishReplay`, use the {@link share} operator instead.\n * `publishReplay(size, time, scheduler), refCount()` is equivalent to\n * `share({ connector: () => new ReplaySubject(size, time, scheduler), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })`.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function publishReplay<T>(\n  bufferSize?: number,\n  windowTime?: number,\n  timestampProvider?: TimestampProvider\n): MonoTypeOperatorFunction<T>;\n\n/**\n * Creates an observable, that when subscribed to, will create a {@link ReplaySubject},\n * and pass an observable from it (using [asObservable](api/index/class/Subject#asObservable)) to\n * the `selector` function, which then returns an observable that is subscribed to before\n * \"connecting\" the source to the internal `ReplaySubject`.\n *\n * Since this is deprecated, for additional details see the documentation for {@link connect}.\n *\n * @param bufferSize The buffer size for the underlying {@link ReplaySubject}.\n * @param windowTime The window time for the underlying {@link ReplaySubject}.\n * @param selector A function used to setup the multicast.\n * @param timestampProvider The timestamp provider for the underlying {@link ReplaySubject}.\n * @deprecated Will be removed in v8. Use the {@link connect} operator instead.\n * `source.pipe(publishReplay(size, window, selector, scheduler))` is equivalent to\n * `source.pipe(connect(selector, { connector: () => new ReplaySubject(size, window, scheduler) }))`.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function publishReplay<T, O extends ObservableInput<any>>(\n  bufferSize: number | undefined,\n  windowTime: number | undefined,\n  selector: (shared: Observable<T>) => O,\n  timestampProvider?: TimestampProvider\n): OperatorFunction<T, ObservedValueOf<O>>;\n\n/**\n * Creates a {@link ConnectableObservable} that uses a {@link ReplaySubject}\n * internally.\n *\n * @param bufferSize The buffer size for the underlying {@link ReplaySubject}.\n * @param windowTime The window time for the underlying {@link ReplaySubject}.\n * @param selector Passing `undefined` here determines that this operator will return a {@link ConnectableObservable}.\n * @param timestampProvider The timestamp provider for the underlying {@link ReplaySubject}.\n * @deprecated Will be removed in v8. To create a connectable observable that uses a\n * {@link ReplaySubject} under the hood, use {@link connectable}.\n * `source.pipe(publishReplay(size, time, scheduler))` is equivalent to\n * `connectable(source, { connector: () => new ReplaySubject(size, time, scheduler), resetOnDisconnect: false })`.\n * If you're using {@link refCount} after `publishReplay`, use the {@link share} operator instead.\n * `publishReplay(size, time, scheduler), refCount()` is equivalent to\n * `share({ connector: () => new ReplaySubject(size, time, scheduler), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })`.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function publishReplay<T, O extends ObservableInput<any>>(\n  bufferSize: number | undefined,\n  windowTime: number | undefined,\n  selector: undefined,\n  timestampProvider: TimestampProvider\n): OperatorFunction<T, ObservedValueOf<O>>;\n\n/**\n * @deprecated Will be removed in v8. Use the {@link connectable} observable, the {@link connect} operator or the\n * {@link share} operator instead. See the overloads below for equivalent replacement examples of this operator's\n * behaviors.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function publishReplay<T, R>(\n  bufferSize?: number,\n  windowTime?: number,\n  selectorOrScheduler?: TimestampProvider | OperatorFunction<T, R>,\n  timestampProvider?: TimestampProvider\n) {\n  if (selectorOrScheduler && !isFunction(selectorOrScheduler)) {\n    timestampProvider = selectorOrScheduler;\n  }\n  const selector = isFunction(selectorOrScheduler) ? selectorOrScheduler : undefined;\n  // Note, we're passing `selector!` here, because at runtime, `undefined` is an acceptable argument\n  // but it makes our TypeScript signature for `multicast` unhappy (as it should, because it's gross).\n  return (source: Observable<T>) => multicast(new ReplaySubject<T>(bufferSize, windowTime, timestampProvider), selector!)(source);\n}\n","import { Subject } from '../Subject';\nimport { Observable } from '../Observable';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { OperatorFunction, UnaryFunction, ObservedValueOf, ObservableInput } from '../types';\nimport { isFunction } from '../util/isFunction';\nimport { connect } from './connect';\n\n/**\n * An operator that creates a {@link ConnectableObservable}, that when connected,\n * with the `connect` method, will use the provided subject to multicast the values\n * from the source to all consumers.\n *\n * @param subject The subject to multicast through.\n * @return A function that returns a {@link ConnectableObservable}\n * @deprecated Will be removed in v8. To create a connectable observable, use {@link connectable}.\n * If you're using {@link refCount} after `multicast`, use the {@link share} operator instead.\n * `multicast(subject), refCount()` is equivalent to\n * `share({ connector: () => subject, resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })`.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function multicast<T>(subject: Subject<T>): UnaryFunction<Observable<T>, ConnectableObservable<T>>;\n\n/**\n * Because this is deprecated in favor of the {@link connect} operator, and was otherwise poorly documented,\n * rather than duplicate the effort of documenting the same behavior, please see documentation for the\n * {@link connect} operator.\n *\n * @param subject The subject used to multicast.\n * @param selector A setup function to setup the multicast\n * @return A function that returns an observable that mirrors the observable returned by the selector.\n * @deprecated Will be removed in v8. Use the {@link connect} operator instead.\n * `multicast(subject, selector)` is equivalent to\n * `connect(selector, { connector: () => subject })`.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function multicast<T, O extends ObservableInput<any>>(\n  subject: Subject<T>,\n  selector: (shared: Observable<T>) => O\n): OperatorFunction<T, ObservedValueOf<O>>;\n\n/**\n * An operator that creates a {@link ConnectableObservable}, that when connected,\n * with the `connect` method, will use the provided subject to multicast the values\n * from the source to all consumers.\n *\n * @param subjectFactory A factory that will be called to create the subject. Passing a function here\n * will cause the underlying subject to be \"reset\" on error, completion, or refCounted unsubscription of\n * the source.\n * @return A function that returns a {@link ConnectableObservable}\n * @deprecated Will be removed in v8. To create a connectable observable, use {@link connectable}.\n * If you're using {@link refCount} after `multicast`, use the {@link share} operator instead.\n * `multicast(() => new BehaviorSubject('test')), refCount()` is equivalent to\n * `share({ connector: () => new BehaviorSubject('test') })`.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function multicast<T>(subjectFactory: () => Subject<T>): UnaryFunction<Observable<T>, ConnectableObservable<T>>;\n\n/**\n * Because this is deprecated in favor of the {@link connect} operator, and was otherwise poorly documented,\n * rather than duplicate the effort of documenting the same behavior, please see documentation for the\n * {@link connect} operator.\n *\n * @param subjectFactory A factory that creates the subject used to multicast.\n * @param selector A function to setup the multicast and select the output.\n * @return A function that returns an observable that mirrors the observable returned by the selector.\n * @deprecated Will be removed in v8. Use the {@link connect} operator instead.\n * `multicast(subjectFactory, selector)` is equivalent to\n * `connect(selector, { connector: subjectFactory })`.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function multicast<T, O extends ObservableInput<any>>(\n  subjectFactory: () => Subject<T>,\n  selector: (shared: Observable<T>) => O\n): OperatorFunction<T, ObservedValueOf<O>>;\n\n/**\n * @deprecated Will be removed in v8. Use the {@link connectable} observable, the {@link connect} operator or the\n * {@link share} operator instead. See the overloads below for equivalent replacement examples of this operator's\n * behaviors.\n * Details: https://rxjs.dev/deprecations/multicasting\n */\nexport function multicast<T, R>(\n  subjectOrSubjectFactory: Subject<T> | (() => Subject<T>),\n  selector?: (source: Observable<T>) => Observable<R>\n): OperatorFunction<T, R> {\n  const subjectFactory = isFunction(subjectOrSubjectFactory) ? subjectOrSubjectFactory : () => subjectOrSubjectFactory;\n\n  if (isFunction(selector)) {\n    // If a selector function is provided, then we're a \"normal\" operator that isn't\n    // going to return a ConnectableObservable. We can use `connect` to do what we\n    // need to do.\n    return connect(selector, {\n      connector: subjectFactory,\n    });\n  }\n\n  return (source: Observable<T>) => new ConnectableObservable<any>(source, subjectFactory);\n}\n","import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action<T> extends Subscription {\n *   new (scheduler: Scheduler, work: (state?: T) => void);\n *   schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action<T>\n */\nexport class Action<T> extends Subscription {\n  constructor(scheduler: Scheduler, work: (this: SchedulerAction<T>, state?: T) => void) {\n    super();\n  }\n  /**\n   * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n   * some context object, `state`. May happen at some point in the future,\n   * according to the `delay` parameter, if specified.\n   * @param {T} [state] Some contextual data that the `work` function uses when\n   * called by the Scheduler.\n   * @param {number} [delay] Time to wait before executing the work, where the\n   * time unit is implicit and defined by the Scheduler.\n   * @return {void}\n   */\n  public schedule(state?: T, delay: number = 0): Subscription {\n    return this;\n  }\n}\n","let nextHandle = 1;\n// The promise needs to be created lazily otherwise it won't be patched by Zones\nlet resolved: Promise<any>;\nconst activeHandles: { [key: number]: any } = {};\n\n/**\n * Finds the handle in the list of active handles, and removes it.\n * Returns `true` if found, `false` otherwise. Used both to clear\n * Immediate scheduled tasks, and to identify if a task should be scheduled.\n */\nfunction findAndClearHandle(handle: number): boolean {\n  if (handle in activeHandles) {\n    delete activeHandles[handle];\n    return true;\n  }\n  return false;\n}\n\n/**\n * Helper functions to schedule and unschedule microtasks.\n */\nexport const Immediate = {\n  setImmediate(cb: () => void): number {\n    const handle = nextHandle++;\n    activeHandles[handle] = true;\n    if (!resolved) {\n      resolved = Promise.resolve();\n    }\n    resolved.then(() => findAndClearHandle(handle) && cb());\n    return handle;\n  },\n\n  clearImmediate(handle: number): void {\n    findAndClearHandle(handle);\n  },\n};\n\n/**\n * Used for internal testing purposes only. Do not export from library.\n */\nexport const TestTools = {\n  pending() {\n    return Object.keys(activeHandles).length;\n  }\n};\n","import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n  setInterval: SetIntervalFunction;\n  clearInterval: ClearIntervalFunction;\n  delegate:\n    | {\n        setInterval: SetIntervalFunction;\n        clearInterval: ClearIntervalFunction;\n      }\n    | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n  // When accessing the delegate, use the variable rather than `this` so that\n  // the functions can be called without being bound to the provider.\n  setInterval(handler: () => void, timeout?: number, ...args) {\n    const { delegate } = intervalProvider;\n    if (delegate?.setInterval) {\n      return delegate.setInterval(handler, timeout, ...args);\n    }\n    return setInterval(handler, timeout, ...args);\n  },\n  clearInterval(handle) {\n    const { delegate } = intervalProvider;\n    return (delegate?.clearInterval || clearInterval)(handle as any);\n  },\n  delegate: undefined,\n};\n","import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction<T> extends Action<T> {\n  public id: TimerHandle | undefined;\n  public state?: T;\n  // @ts-ignore: Property has no initializer and is not definitely assigned\n  public delay: number;\n  protected pending: boolean = false;\n\n  constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction<T>, state?: T) => void) {\n    super(scheduler, work);\n  }\n\n  public schedule(state?: T, delay: number = 0): Subscription {\n    if (this.closed) {\n      return this;\n    }\n\n    // Always replace the current state with the new state.\n    this.state = state;\n\n    const id = this.id;\n    const scheduler = this.scheduler;\n\n    //\n    // Important implementation note:\n    //\n    // Actions only execute once by default, unless rescheduled from within the\n    // scheduled callback. This allows us to implement single and repeat\n    // actions via the same code path, without adding API surface area, as well\n    // as mimic traditional recursion but across asynchronous boundaries.\n    //\n    // However, JS runtimes and timers distinguish between intervals achieved by\n    // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n    // serial `setTimeout` calls can be individually delayed, which delays\n    // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n    // guarantee the interval callback will be invoked more precisely to the\n    // interval period, regardless of load.\n    //\n    // Therefore, we use `setInterval` to schedule single and repeat actions.\n    // If the action reschedules itself with the same delay, the interval is not\n    // canceled. If the action doesn't reschedule, or reschedules with a\n    // different delay, the interval will be canceled after scheduled callback\n    // execution.\n    //\n    if (id != null) {\n      this.id = this.recycleAsyncId(scheduler, id, delay);\n    }\n\n    // Set the pending flag indicating that this action has been scheduled, or\n    // has recursively rescheduled itself.\n    this.pending = true;\n\n    this.delay = delay;\n    // If this action has already an async Id, don't request a new one.\n    this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n    return this;\n  }\n\n  protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n    return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n  }\n\n  protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n    // If this action is rescheduled with the same delay time, don't clear the interval id.\n    if (delay != null && this.delay === delay && this.pending === false) {\n      return id;\n    }\n    // Otherwise, if the action's delay time is different from the current delay,\n    // or the action has been rescheduled before it's executed, clear the interval id\n    if (id != null) {\n      intervalProvider.clearInterval(id);\n    }\n\n    return undefined;\n  }\n\n  /**\n   * Immediately executes this action and the `work` it contains.\n   * @return {any}\n   */\n  public execute(state: T, delay: number): any {\n    if (this.closed) {\n      return new Error('executing a cancelled action');\n    }\n\n    this.pending = false;\n    const error = this._execute(state, delay);\n    if (error) {\n      return error;\n    } else if (this.pending === false && this.id != null) {\n      // Dequeue if the action didn't reschedule itself. Don't call\n      // unsubscribe(), because the action could reschedule later.\n      // For example:\n      // ```\n      // scheduler.schedule(function doWork(counter) {\n      //   /* ... I'm a busy worker bee ... */\n      //   var originalAction = this;\n      //   /* wait 100ms before rescheduling the action */\n      //   setTimeout(function () {\n      //     originalAction.schedule(counter + 1);\n      //   }, 100);\n      // }, 1000);\n      // ```\n      this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n    }\n  }\n\n  protected _execute(state: T, _delay: number): any {\n    let errored: boolean = false;\n    let errorValue: any;\n    try {\n      this.work(state);\n    } catch (e) {\n      errored = true;\n      // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n      // return here, we can't have it return \"\" or 0 or false.\n      // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n      errorValue = e ? e : new Error('Scheduled action threw falsy error');\n    }\n    if (errored) {\n      this.unsubscribe();\n      return errorValue;\n    }\n  }\n\n  unsubscribe() {\n    if (!this.closed) {\n      const { id, scheduler } = this;\n      const { actions } = scheduler;\n\n      this.work = this.state = this.scheduler = null!;\n      this.pending = false;\n\n      arrRemove(actions, this);\n      if (id != null) {\n        this.id = this.recycleAsyncId(scheduler, id, null);\n      }\n\n      this.delay = null!;\n      super.unsubscribe();\n    }\n  }\n}\n","import { Immediate } from '../util/Immediate';\nimport type { TimerHandle } from './timerHandle';\nconst { setImmediate, clearImmediate } = Immediate;\n\ntype SetImmediateFunction = (handler: () => void, ...args: any[]) => TimerHandle;\ntype ClearImmediateFunction = (handle: TimerHandle) => void;\n\ninterface ImmediateProvider {\n  setImmediate: SetImmediateFunction;\n  clearImmediate: ClearImmediateFunction;\n  delegate:\n    | {\n        setImmediate: SetImmediateFunction;\n        clearImmediate: ClearImmediateFunction;\n      }\n    | undefined;\n}\n\nexport const immediateProvider: ImmediateProvider = {\n  // When accessing the delegate, use the variable rather than `this` so that\n  // the functions can be called without being bound to the provider.\n  setImmediate(...args) {\n    const { delegate } = immediateProvider;\n    return (delegate?.setImmediate || setImmediate)(...args);\n  },\n  clearImmediate(handle) {\n    const { delegate } = immediateProvider;\n    return (delegate?.clearImmediate || clearImmediate)(handle as any);\n  },\n  delegate: undefined,\n};\n","import { AsyncAction } from './AsyncAction';\nimport { AsapScheduler } from './AsapScheduler';\nimport { SchedulerAction } from '../types';\nimport { immediateProvider } from './immediateProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsapAction<T> extends AsyncAction<T> {\n  constructor(protected scheduler: AsapScheduler, protected work: (this: SchedulerAction<T>, state?: T) => void) {\n    super(scheduler, work);\n  }\n\n  protected requestAsyncId(scheduler: AsapScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n    // If delay is greater than 0, request as an async action.\n    if (delay !== null && delay > 0) {\n      return super.requestAsyncId(scheduler, id, delay);\n    }\n    // Push the action to the end of the scheduler queue.\n    scheduler.actions.push(this);\n    // If a microtask has already been scheduled, don't schedule another\n    // one. If a microtask hasn't been scheduled yet, schedule one now. Return\n    // the current scheduled microtask id.\n    return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n  }\n\n  protected recycleAsyncId(scheduler: AsapScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n    // If delay exists and is greater than 0, or if the delay is null (the\n    // action wasn't rescheduled) but was originally scheduled as an async\n    // action, then recycle as an async action.\n    if (delay != null ? delay > 0 : this.delay > 0) {\n      return super.recycleAsyncId(scheduler, id, delay);\n    }\n    // If the scheduler queue has no remaining actions with the same async id,\n    // cancel the requested microtask and set the scheduled flag to undefined\n    // so the next AsapAction will request its own.\n    const { actions } = scheduler;\n    if (id != null && actions[actions.length - 1]?.id !== id) {\n      immediateProvider.clearImmediate(id);\n      if (scheduler._scheduled === id) {\n        scheduler._scheduled = undefined;\n      }\n    }\n    // Return undefined so the action knows to request a new async id if it's rescheduled.\n    return undefined;\n  }\n}\n","import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n *   now(): number;\n *   schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n  public static now: () => number = dateTimestampProvider.now;\n\n  constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n    this.now = now;\n  }\n\n  /**\n   * A getter method that returns a number representing the current time\n   * (at the time this function was called) according to the scheduler's own\n   * internal clock.\n   * @return {number} A number that represents the current time. May or may not\n   * have a relation to wall-clock time. May or may not refer to a time unit\n   * (e.g. milliseconds).\n   */\n  public now: () => number;\n\n  /**\n   * Schedules a function, `work`, for execution. May happen at some point in\n   * the future, according to the `delay` parameter, if specified. May be passed\n   * some context object, `state`, which will be passed to the `work` function.\n   *\n   * The given arguments will be processed an stored as an Action object in a\n   * queue of actions.\n   *\n   * @param {function(state: ?T): ?Subscription} work A function representing a\n   * task, or some unit of work to be executed by the Scheduler.\n   * @param {number} [delay] Time to wait before executing the work, where the\n   * time unit is implicit and defined by the Scheduler itself.\n   * @param {T} [state] Some contextual data that the `work` function uses when\n   * called by the Scheduler.\n   * @return {Subscription} A subscription in order to be able to unsubscribe\n   * the scheduled work.\n   */\n  public schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay: number = 0, state?: T): Subscription {\n    return new this.schedulerActionCtor<T>(this, work).schedule(state, delay);\n  }\n}\n","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\n\n/**\n *\n * Asap Scheduler\n *\n * <span class=\"informal\">Perform task as fast as it can be performed asynchronously</span>\n *\n * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task\n * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing\n * code to end and then it will try to execute given task as fast as possible.\n *\n * `asap` scheduler will do its best to minimize time between end of currently executing code\n * and start of scheduled task. This makes it best candidate for performing so called \"deferring\".\n * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves\n * some (although minimal) unwanted delay.\n *\n * Note that using `asap` scheduler does not necessarily mean that your task will be first to process\n * after currently executing code. In particular, if some task was also scheduled with `asap` before,\n * that task will execute first. That being said, if you need to schedule task asynchronously, but\n * as soon as possible, `asap` scheduler is your best bet.\n *\n * ## Example\n * Compare async and asap scheduler<\n * ```ts\n * import { asapScheduler, asyncScheduler } from 'rxjs';\n *\n * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first...\n * asapScheduler.schedule(() => console.log('asap'));\n *\n * // Logs:\n * // \"asap\"\n * // \"async\"\n * // ... but 'asap' goes first!\n * ```\n */\n\nexport const asapScheduler = new AsapScheduler(AsapAction);\n\n/**\n * @deprecated Renamed to {@link asapScheduler}. Will be removed in v8.\n */\nexport const asap = asapScheduler;\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AsapScheduler extends AsyncScheduler {\n  public flush(action?: AsyncAction<any>): void {\n    this._active = true;\n    // The async id that effects a call to flush is stored in _scheduled.\n    // Before executing an action, it's necessary to check the action's async\n    // id to determine whether it's supposed to be executed in the current\n    // flush.\n    // Previous implementations of this method used a count to determine this,\n    // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n    // are removed from the actions array and that can shift actions that are\n    // scheduled to be executed in a subsequent flush into positions at which\n    // they are executed within the current flush.\n    const flushId = this._scheduled;\n    this._scheduled = undefined;\n\n    const { actions } = this;\n    let error: any;\n    action = action || actions.shift()!;\n\n    do {\n      if ((error = action.execute(action.state, action.delay))) {\n        break;\n      }\n    } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n    this._active = false;\n\n    if (error) {\n      while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n        action.unsubscribe();\n      }\n      throw error;\n    }\n  }\n}\n","import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n  public actions: Array<AsyncAction<any>> = [];\n  /**\n   * A flag to indicate whether the Scheduler is currently executing a batch of\n   * queued actions.\n   * @type {boolean}\n   * @internal\n   */\n  public _active: boolean = false;\n  /**\n   * An internal ID used to track the latest asynchronous task such as those\n   * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n   * others.\n   * @type {any}\n   * @internal\n   */\n  public _scheduled: TimerHandle | undefined;\n\n  constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n    super(SchedulerAction, now);\n  }\n\n  public flush(action: AsyncAction<any>): void {\n    const { actions } = this;\n\n    if (this._active) {\n      actions.push(action);\n      return;\n    }\n\n    let error: any;\n    this._active = true;\n\n    do {\n      if ((error = action.execute(action.state, action.delay))) {\n        break;\n      }\n    } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n    this._active = false;\n\n    if (error) {\n      while ((action = actions.shift()!)) {\n        action.unsubscribe();\n      }\n      throw error;\n    }\n  }\n}\n","import { asapScheduler, Observable, Subscription } from 'rxjs';\n/** @internal */\nexport function refCountDelay(delay = 1750) {\n    return (source) => {\n        // state: 0 = disconnected, 1 = disconnecting, 2 = connecting, 3 = connected\n        let [state, refCount, connection, scheduler] = [0, 0, Subscription.EMPTY, Subscription.EMPTY];\n        return new Observable((ob) => {\n            source.subscribe(ob);\n            if (refCount++ === 0) {\n                if (state === 1) {\n                    scheduler.unsubscribe();\n                }\n                else {\n                    // eslint-disable-next-line deprecation/deprecation\n                    connection = source.connect();\n                }\n                state = 3;\n            }\n            return () => {\n                if (--refCount === 0) {\n                    if (state === 2) {\n                        state = 0;\n                        scheduler.unsubscribe();\n                    }\n                    else {\n                        // state === 3\n                        state = 1;\n                        scheduler = asapScheduler.schedule(() => {\n                            state = 0;\n                            connection.unsubscribe();\n                        }, delay);\n                    }\n                }\n            };\n        });\n    };\n}\n","import { catchError, distinctUntilChanged, publishReplay, refCount, tap } from 'rxjs';\nimport { stringify } from '@polkadot/util';\nimport { refCountDelay } from './refCountDelay.js';\nfunction CMP(a, b) {\n    return stringify({ t: a }) === stringify({ t: b });\n}\nfunction ERR(error) {\n    throw error;\n}\nfunction NOOP() {\n    // empty\n}\n/**\n * Shorthand for distinctUntilChanged(), publishReplay(1) and refCount().\n *\n * @ignore\n * @internal\n */\nexport function drr({ delay, skipChange = false, skipTimeout = false } = {}) {\n    return (source$) => source$.pipe(catchError(ERR), skipChange\n        ? tap(NOOP)\n        : distinctUntilChanged(CMP), \n    // eslint-disable-next-line deprecation/deprecation\n    publishReplay(1), skipTimeout\n        // eslint-disable-next-line deprecation/deprecation\n        ? refCount()\n        : refCountDelay(delay));\n}\n","import { Observable } from 'rxjs';\nimport { memoize } from '@polkadot/util';\nimport { drr } from './drr.js';\n/** @internal */\nexport function memo(instanceId, inner) {\n    const options = { getInstanceId: () => instanceId };\n    const cached = memoize((...params) => new Observable((observer) => {\n        const subscription = inner(...params).subscribe(observer);\n        return () => {\n            cached.unmemoize(...params);\n            subscription.unsubscribe();\n        };\n    }).pipe(drr()), options);\n    return cached;\n}\n","import { map, of } from 'rxjs';\nimport { assertReturn, isU8a } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { memo } from '../util/index.js';\n/**\n * @name accountId\n * @param {(Address | AccountId | AccountIndex | string | null)} address - An accounts address in various formats.\n * @description  An [[AccountId]]\n */\nexport function accountId(instanceId, api) {\n    return memo(instanceId, (address) => {\n        const decoded = isU8a(address)\n            ? address\n            : decodeAddress((address || '').toString());\n        if (decoded.length > 8) {\n            return of(api.registry.createType('AccountId', decoded));\n        }\n        const accountIndex = api.registry.createType('AccountIndex', decoded);\n        return api.derive.accounts.indexToId(accountIndex.toString()).pipe(map((a) => assertReturn(a, 'Unable to retrieve accountId')));\n    });\n}\n","import { map, of } from 'rxjs';\nimport { isFunction } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nfunction parseFlags(address, [electionsMembers, councilMembers, technicalCommitteeMembers, societyMembers, sudoKey]) {\n    const addrStr = address?.toString();\n    const isIncluded = (id) => id.toString() === addrStr;\n    return {\n        isCouncil: (electionsMembers?.map((r) => Array.isArray(r) ? r[0] : r.who) || councilMembers || []).some(isIncluded),\n        isSociety: (societyMembers || []).some(isIncluded),\n        isSudo: sudoKey?.toString() === addrStr,\n        isTechCommittee: (technicalCommitteeMembers || []).some(isIncluded)\n    };\n}\nexport function _flags(instanceId, api) {\n    return memo(instanceId, () => {\n        const results = [undefined, [], [], [], undefined];\n        const calls = [\n            (api.query.elections || api.query['phragmenElection'] || api.query['electionsPhragmen'])?.members,\n            api.query.council?.members,\n            api.query.technicalCommittee?.members,\n            api.query.society?.members,\n            api.query.sudo?.key\n        ];\n        const filtered = calls.filter((c) => c);\n        if (!filtered.length) {\n            return of(results);\n        }\n        return api.queryMulti(filtered).pipe(map((values) => {\n            let resultIndex = -1;\n            for (let i = 0, count = calls.length; i < count; i++) {\n                if (isFunction(calls[i])) {\n                    results[i] = values[++resultIndex];\n                }\n            }\n            return results;\n        }));\n    });\n}\n/**\n * @name info\n * @description Returns account membership flags\n */\nexport function flags(instanceId, api) {\n    return memo(instanceId, (address) => api.derive.accounts._flags().pipe(map((r) => parseFlags(address, r))));\n}\n","import { map, of } from 'rxjs';\nimport { isU8a } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport { memo } from '../util/index.js';\n/**\n * @name idAndIndex\n * @param {(Address | AccountId | AccountIndex | Uint8Array | string | null)} address - An accounts address in various formats.\n * @description  An array containing the [[AccountId]] and [[AccountIndex]] as optional values.\n * @example\n * <BR>\n *\n * ```javascript\n * api.derive.accounts.idAndIndex('F7Hs', ([id, ix]) => {\n *   console.log(`AccountId #${id} with corresponding AccountIndex ${ix}`);\n * });\n * ```\n */\nexport function idAndIndex(instanceId, api) {\n    return memo(instanceId, (address) => {\n        try {\n            // yes, this can fail, don't care too much, catch will catch it\n            const decoded = isU8a(address)\n                ? address\n                : decodeAddress((address || '').toString());\n            if (decoded.length > 8) {\n                const accountId = api.registry.createType('AccountId', decoded);\n                return api.derive.accounts.idToIndex(accountId).pipe(map((accountIndex) => [accountId, accountIndex]));\n            }\n            const accountIndex = api.registry.createType('AccountIndex', decoded);\n            return api.derive.accounts.indexToId(accountIndex.toString()).pipe(map((accountId) => [accountId, accountIndex]));\n        }\n        catch {\n            return of([undefined, undefined]);\n        }\n    });\n}\n","import { map } from 'rxjs';\nimport { memo } from '@polkadot/rpc-core';\nexport function firstObservable(obs) {\n    return obs.pipe(map(([a]) => a));\n}\nexport function firstMemo(fn) {\n    return (instanceId, api) => memo(instanceId, (...args) => firstObservable(fn(api, ...args)));\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { isHex, u8aToString } from '@polkadot/util';\nimport { firstMemo, memo } from '../util/index.js';\nconst UNDEF_HEX = { toHex: () => undefined };\nfunction dataAsString(data) {\n    return data.isRaw\n        ? u8aToString(data.asRaw.toU8a(true))\n        : data.isNone\n            ? undefined\n            : data.toHex();\n}\nfunction extractOther(additional) {\n    return additional.reduce((other, [_key, _value]) => {\n        const key = dataAsString(_key);\n        const value = dataAsString(_value);\n        if (key && value) {\n            other[key] = value;\n        }\n        return other;\n    }, {});\n}\nfunction extractIdentity(identityOfOpt, superOf) {\n    if (!identityOfOpt?.isSome) {\n        return { judgements: [] };\n    }\n    const { info, judgements } = identityOfOpt.unwrap();\n    const topDisplay = dataAsString(info.display);\n    return {\n        display: (superOf && dataAsString(superOf[1])) || topDisplay,\n        displayParent: superOf && topDisplay,\n        email: dataAsString(info.email),\n        image: dataAsString(info.image),\n        judgements,\n        legal: dataAsString(info.legal),\n        other: extractOther(info.additional),\n        parent: superOf?.[0],\n        pgp: info.pgpFingerprint.unwrapOr(UNDEF_HEX).toHex(),\n        riot: dataAsString(info.riot),\n        twitter: dataAsString(info.twitter),\n        web: dataAsString(info.web)\n    };\n}\nfunction getParent(api, identityOfOpt, superOfOpt) {\n    if (identityOfOpt?.isSome) {\n        // this identity has something set\n        return of([identityOfOpt, undefined]);\n    }\n    else if (superOfOpt?.isSome) {\n        const superOf = superOfOpt.unwrap();\n        return combineLatest([\n            api.derive.accounts._identity(superOf[0]).pipe(map(([info]) => info)),\n            of(superOf)\n        ]);\n    }\n    // nothing of value returned\n    return of([undefined, undefined]);\n}\nexport function _identity(instanceId, api) {\n    return memo(instanceId, (accountId) => accountId && api.query.identity?.identityOf\n        ? combineLatest([\n            api.query.identity.identityOf(accountId),\n            api.query.identity.superOf(accountId)\n        ])\n        : of([undefined, undefined]));\n}\n/**\n * @name identity\n * @description Returns identity info for an account\n */\nexport function identity(instanceId, api) {\n    return memo(instanceId, (accountId) => api.derive.accounts._identity(accountId).pipe(switchMap(([identityOfOpt, superOfOpt]) => getParent(api, identityOfOpt, superOfOpt)), map(([identityOfOpt, superOf]) => extractIdentity(identityOfOpt, superOf))));\n}\nexport const hasIdentity = /*#__PURE__*/ firstMemo((api, accountId) => api.derive.accounts.hasIdentityMulti([accountId]));\nexport function hasIdentityMulti(instanceId, api) {\n    return memo(instanceId, (accountIds) => api.query.identity?.identityOf\n        ? combineLatest([\n            api.query.identity.identityOf.multi(accountIds),\n            api.query.identity.superOf.multi(accountIds)\n        ]).pipe(map(([identities, supers]) => identities.map((identityOfOpt, index) => {\n            const superOfOpt = supers[index];\n            const parentId = superOfOpt && superOfOpt.isSome\n                ? superOfOpt.unwrap()[0].toString()\n                : undefined;\n            let display;\n            if (identityOfOpt && identityOfOpt.isSome) {\n                const value = dataAsString(identityOfOpt.unwrap().info.display);\n                if (value && !isHex(value)) {\n                    display = value;\n                }\n            }\n            return { display, hasIdentity: !!(display || parentId), parentId };\n        })))\n        : of(accountIds.map(() => ({ hasIdentity: false }))));\n}\n","import { map } from 'rxjs';\nimport { memo } from '../util/index.js';\n/**\n * @name idToIndex\n * @param {( AccountId | string )} accountId - An accounts Id in different formats.\n * @returns Returns the corresponding AccountIndex.\n * @example\n * <BR>\n *\n * ```javascript\n * const ALICE = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY';\n * api.derive.accounts.idToIndex(ALICE, (accountIndex) => {\n *   console.log(`The AccountIndex of ${ALICE} is ${accountIndex}`);\n * });\n * ```\n */\nexport function idToIndex(instanceId, api) {\n    return memo(instanceId, (accountId) => api.derive.accounts.indexes().pipe(map((indexes) => indexes[accountId.toString()])));\n}\n","import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';\nimport { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\n\n/* tslint:disable:max-line-length */\nexport function mergeMap<T, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  concurrent?: number\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function mergeMap<T, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector: undefined,\n  concurrent?: number\n): OperatorFunction<T, ObservedValueOf<O>>;\n/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */\nexport function mergeMap<T, R, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R,\n  concurrent?: number\n): OperatorFunction<T, R>;\n/* tslint:enable:max-line-length */\n\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.</span>\n *\n * ![](mergeMap.png)\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger.\n *\n * ## Example\n *\n * Map and flatten each letter to an Observable ticking every 1 second\n *\n * ```ts\n * import { of, mergeMap, interval, map } from 'rxjs';\n *\n * const letters = of('a', 'b', 'c');\n * const result = letters.pipe(\n *   mergeMap(x => interval(1000).pipe(map(i => x + i)))\n * );\n *\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // a0\n * // b0\n * // c0\n * // a1\n * // b1\n * // c1\n * // continues to list a, b, c every second with respective ascending integers\n * ```\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): ObservableInput} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {number} [concurrent=Infinity] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return A function that returns an Observable that emits the result of\n * applying the projection function (and the optional deprecated\n * `resultSelector`) to each item emitted by the source Observable and merging\n * the results of the Observables obtained from this transformation.\n */\nexport function mergeMap<T, R, O extends ObservableInput<any>>(\n  project: (value: T, index: number) => O,\n  resultSelector?: ((outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R) | number,\n  concurrent: number = Infinity\n): OperatorFunction<T, ObservedValueOf<O> | R> {\n  if (isFunction(resultSelector)) {\n    // DEPRECATED PATH\n    return mergeMap((a, i) => map((b: any, ii: number) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n  } else if (typeof resultSelector === 'number') {\n    concurrent = resultSelector;\n  }\n\n  return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from '../observable/innerFrom';\nimport { Subscriber } from '../Subscriber';\nimport { ObservableInput, SchedulerLike } from '../types';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * A process embodying the general \"merge\" strategy. This is used in\n * `mergeMap` and `mergeScan` because the logic is otherwise nearly identical.\n * @param source The original source observable\n * @param subscriber The consumer subscriber\n * @param project The projection function to get our inner sources\n * @param concurrent The number of concurrent inner subscriptions\n * @param onBeforeNext Additional logic to apply before nexting to our consumer\n * @param expand If `true` this will perform an \"expand\" strategy, which differs only\n * in that it recurses, and the inner subscription must be schedule-able.\n * @param innerSubScheduler A scheduler to use to schedule inner subscriptions,\n * this is to support the expand strategy, mostly, and should be deprecated\n */\nexport function mergeInternals<T, R>(\n  source: Observable<T>,\n  subscriber: Subscriber<R>,\n  project: (value: T, index: number) => ObservableInput<R>,\n  concurrent: number,\n  onBeforeNext?: (innerValue: R) => void,\n  expand?: boolean,\n  innerSubScheduler?: SchedulerLike,\n  additionalFinalizer?: () => void\n) {\n  // Buffered values, in the event of going over our concurrency limit\n  const buffer: T[] = [];\n  // The number of active inner subscriptions.\n  let active = 0;\n  // An index to pass to our accumulator function\n  let index = 0;\n  // Whether or not the outer source has completed.\n  let isComplete = false;\n\n  /**\n   * Checks to see if we can complete our result or not.\n   */\n  const checkComplete = () => {\n    // If the outer has completed, and nothing is left in the buffer,\n    // and we don't have any active inner subscriptions, then we can\n    // Emit the state and complete.\n    if (isComplete && !buffer.length && !active) {\n      subscriber.complete();\n    }\n  };\n\n  // If we're under our concurrency limit, just start the inner subscription, otherwise buffer and wait.\n  const outerNext = (value: T) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n\n  const doInnerSub = (value: T) => {\n    // If we're expanding, we need to emit the outer values and the inner values\n    // as the inners will \"become outers\" in a way as they are recursively fed\n    // back to the projection mechanism.\n    expand && subscriber.next(value as any);\n\n    // Increment the number of active subscriptions so we can track it\n    // against our concurrency limit later.\n    active++;\n\n    // A flag used to show that the inner observable completed.\n    // This is checked during finalization to see if we should\n    // move to the next item in the buffer, if there is on.\n    let innerComplete = false;\n\n    // Start our inner subscription.\n    innerFrom(project(value, index++)).subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (innerValue) => {\n          // `mergeScan` has additional handling here. For example\n          // taking the inner value and updating state.\n          onBeforeNext?.(innerValue);\n\n          if (expand) {\n            // If we're expanding, then just recurse back to our outer\n            // handler. It will emit the value first thing.\n            outerNext(innerValue as any);\n          } else {\n            // Otherwise, emit the inner value.\n            subscriber.next(innerValue);\n          }\n        },\n        () => {\n          // Flag that we have completed, so we know to check the buffer\n          // during finalization.\n          innerComplete = true;\n        },\n        // Errors are passed to the destination.\n        undefined,\n        () => {\n          // During finalization, if the inner completed (it wasn't errored or\n          // cancelled), then we want to try the next item in the buffer if\n          // there is one.\n          if (innerComplete) {\n            // We have to wrap this in a try/catch because it happens during\n            // finalization, possibly asynchronously, and we want to pass\n            // any errors that happen (like in a projection function) to\n            // the outer Subscriber.\n            try {\n              // INNER SOURCE COMPLETE\n              // Decrement the active count to ensure that the next time\n              // we try to call `doInnerSub`, the number is accurate.\n              active--;\n              // If we have more values in the buffer, try to process those\n              // Note that this call will increment `active` ahead of the\n              // next conditional, if there were any more inner subscriptions\n              // to start.\n              while (buffer.length && active < concurrent) {\n                const bufferedValue = buffer.shift()!;\n                // Particularly for `expand`, we need to check to see if a scheduler was provided\n                // for when we want to start our inner subscription. Otherwise, we just start\n                // are next inner subscription.\n                if (innerSubScheduler) {\n                  executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n                } else {\n                  doInnerSub(bufferedValue);\n                }\n              }\n              // Check to see if we can complete, and complete if so.\n              checkComplete();\n            } catch (err) {\n              subscriber.error(err);\n            }\n          }\n        }\n      )\n    );\n  };\n\n  // Subscribe to our source observable.\n  source.subscribe(\n    createOperatorSubscriber(subscriber, outerNext, () => {\n      // Outer completed, make a note of it, and check to see if we can complete everything.\n      isComplete = true;\n      checkComplete();\n    })\n  );\n\n  // Additional finalization (for when the destination is torn down).\n  // Other finalization is added implicitly via subscription above.\n  return () => {\n    additionalFinalizer?.();\n  };\n}\n","import { mergeAll } from './mergeAll';\nimport { OperatorFunction, ObservableInput, ObservedValueOf } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.</span>\n *\n * ![](concatAll.svg)\n *\n * Joins every Observable emitted by the source (a higher-order Observable), in\n * a serial fashion. It subscribes to each inner Observable only after the\n * previous inner Observable has completed, and merges all of their values into\n * the returned observable.\n *\n * __Warning:__ If the source Observable emits Observables quickly and\n * endlessly, and the inner Observables it emits generally complete slower than\n * the source emits, you can run into memory issues as the incoming Observables\n * collect in an unbounded buffer.\n *\n * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set\n * to `1`.\n *\n * ## Example\n *\n * For each click event, tick every second from 0 to 3, with no concurrency\n *\n * ```ts\n * import { fromEvent, map, interval, take, concatAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n *   map(() => interval(1000).pipe(take(4)))\n * );\n * const firstOrder = higherOrder.pipe(concatAll());\n * firstOrder.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n * ```\n *\n * @see {@link combineLatestAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaustAll}\n * @see {@link mergeAll}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @return A function that returns an Observable emitting values from all the\n * inner Observables concatenated.\n */\nexport function concatAll<O extends ObservableInput<any>>(): OperatorFunction<O, ObservedValueOf<O>> {\n  return mergeAll(1);\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nimport { OperatorFunction, ObservableInput, ObservedValueOf } from '../types';\n\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables.</span>\n *\n * ![](mergeAll.png)\n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * ## Examples\n *\n * Spawn a new interval Observable for each click event, and blend their outputs as one Observable\n *\n * ```ts\n * import { fromEvent, map, interval, mergeAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(map(() => interval(1000)));\n * const firstOrder = higherOrder.pipe(mergeAll());\n *\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers\n *\n * ```ts\n * import { fromEvent, map, interval, take, mergeAll } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const higherOrder = clicks.pipe(\n *   map(() => interval(1000).pipe(take(10)))\n * );\n * const firstOrder = higherOrder.pipe(mergeAll(2));\n *\n * firstOrder.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link combineLatestAll}\n * @see {@link concatAll}\n * @see {@link exhaustAll}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchAll}\n * @see {@link switchMap}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Infinity] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return A function that returns an Observable that emits values coming from\n * all the inner Observables emitted by the source Observable.\n */\nexport function mergeAll<O extends ObservableInput<any>>(concurrent: number = Infinity): OperatorFunction<O, ObservedValueOf<O>> {\n  return mergeMap(identity, concurrent);\n}\n","import { Observable } from '../Observable';\nimport { ObservableInputTuple, SchedulerLike } from '../types';\nimport { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\n\nexport function concat<T extends readonly unknown[]>(...inputs: [...ObservableInputTuple<T>]): Observable<T[number]>;\nexport function concat<T extends readonly unknown[]>(\n  ...inputsAndScheduler: [...ObservableInputTuple<T>, SchedulerLike]\n): Observable<T[number]>;\n\n/**\n * Creates an output Observable which sequentially emits all values from the first given\n * Observable and then moves on to the next.\n *\n * <span class=\"informal\">Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.</span>\n *\n * ![](concat.png)\n *\n * `concat` joins multiple Observables together, by subscribing to them one at a time and\n * merging their results into the output Observable. You can pass either an array of\n * Observables, or put them directly as arguments. Passing an empty array will result\n * in Observable that completes immediately.\n *\n * `concat` will subscribe to first input Observable and emit all its values, without\n * changing or affecting them in any way. When that Observable completes, it will\n * subscribe to then next Observable passed and, again, emit its values. This will be\n * repeated, until the operator runs out of Observables. When last input Observable completes,\n * `concat` will complete as well. At any given moment only one Observable passed to operator\n * emits values. If you would like to emit values from passed Observables concurrently, check out\n * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact,\n * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`.\n *\n * Note that if some input Observable never completes, `concat` will also never complete\n * and Observables following the one that did not complete will never be subscribed. On the other\n * hand, if some Observable simply completes immediately after it is subscribed, it will be\n * invisible for `concat`, which will just move on to the next Observable.\n *\n * If any Observable in chain errors, instead of passing control to the next Observable,\n * `concat` will error immediately as well. Observables that would be subscribed after\n * the one that emitted error, never will.\n *\n * If you pass to `concat` the same Observable many times, its stream of values\n * will be \"replayed\" on every subscription, which means you can repeat given Observable\n * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious,\n * you can always use {@link repeat}.\n *\n * ## Examples\n *\n * Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10\n *\n * ```ts\n * import { interval, take, range, concat } from 'rxjs';\n *\n * const timer = interval(1000).pipe(take(4));\n * const sequence = range(1, 10);\n * const result = concat(timer, sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n * ```\n *\n * Concatenate 3 Observables\n *\n * ```ts\n * import { interval, take, concat } from 'rxjs';\n *\n * const timer1 = interval(1000).pipe(take(10));\n * const timer2 = interval(2000).pipe(take(6));\n * const timer3 = interval(500).pipe(take(10));\n *\n * const result = concat(timer1, timer2, timer3);\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n * ```\n *\n * Concatenate the same Observable to repeat it\n *\n * ```ts\n * import { interval, take, concat } from 'rxjs';\n *\n * const timer = interval(1000).pipe(take(2));\n *\n * concat(timer, timer) // concatenating the same Observable!\n *   .subscribe({\n *     next: value => console.log(value),\n *     complete: () => console.log('...and it is done!')\n *   });\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 0 after 3s\n * // 1 after 4s\n * // '...and it is done!' also after 4s\n * ```\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link startWith}\n * @see {@link endWith}\n *\n * @param args Input Observables to concatenate.\n */\nexport function concat(...args: any[]): Observable<unknown> {\n  return concatAll()(from(args, popScheduler(args)));\n}\n","import { concat } from '../observable/concat';\nimport { OperatorFunction, SchedulerLike, ValueFromArray } from '../types';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\n\n// Devs are more likely to pass null or undefined than they are a scheduler\n// without accompanying values. To make things easier for (naughty) devs who\n// use the `strictNullChecks: false` TypeScript compiler option, these\n// overloads with explicit null and undefined values are included.\n\nexport function startWith<T>(value: null): OperatorFunction<T, T | null>;\nexport function startWith<T>(value: undefined): OperatorFunction<T, T | undefined>;\n\n/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `concatAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */\nexport function startWith<T, A extends readonly unknown[] = T[]>(\n  ...valuesAndScheduler: [...A, SchedulerLike]\n): OperatorFunction<T, T | ValueFromArray<A>>;\nexport function startWith<T, A extends readonly unknown[] = T[]>(...values: A): OperatorFunction<T, T | ValueFromArray<A>>;\n\n/**\n * Returns an observable that, at the moment of subscription, will synchronously emit all\n * values provided to this operator, then subscribe to the source and mirror all of its emissions\n * to subscribers.\n *\n * This is a useful way to know when subscription has occurred on an existing observable.\n *\n * <span class=\"informal\">First emits its arguments in order, and then any\n * emissions from the source.</span>\n *\n * ![](startWith.png)\n *\n * ## Examples\n *\n * Emit a value when a timer starts.\n *\n * ```ts\n * import { timer, map, startWith } from 'rxjs';\n *\n * timer(1000)\n *   .pipe(\n *     map(() => 'timer emit'),\n *     startWith('timer start')\n *   )\n *   .subscribe(x => console.log(x));\n *\n * // results:\n * // 'timer start'\n * // 'timer emit'\n * ```\n *\n * @param values Items you want the modified Observable to emit first.\n * @return A function that returns an Observable that synchronously emits\n * provided values before subscribing to the source Observable.\n *\n * @see {@link endWith}\n * @see {@link finalize}\n * @see {@link concat}\n */\nexport function startWith<T, D>(...values: D[]): OperatorFunction<T, T | D> {\n  const scheduler = popScheduler(values);\n  return operate((source, subscriber) => {\n    // Here we can't pass `undefined` as a scheduler, because if we did, the\n    // code inside of `concat` would be confused by the `undefined`, and treat it\n    // like an invalid observable. So we have to split it two different ways.\n    (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n  });\n}\n","import { map, of, startWith } from 'rxjs';\nimport { memo } from '../util/index.js';\nlet indicesCache = null;\nfunction queryAccounts(api) {\n    return api.query.indices.accounts.entries().pipe(map((entries) => entries.reduce((indexes, [key, idOpt]) => {\n        if (idOpt.isSome) {\n            indexes[idOpt.unwrap()[0].toString()] = api.registry.createType('AccountIndex', key.args[0]);\n        }\n        return indexes;\n    }, {})));\n}\n/**\n * @name indexes\n * @returns Returns all the indexes on the system.\n * @description This is an unwieldly query since it loops through\n * all of the enumsets and returns all of the values found. This could be up to 32k depending\n * on the number of active accounts in the system\n * @example\n * <BR>\n *\n * ```javascript\n * api.derive.accounts.indexes((indexes) => {\n *   console.log('All existing AccountIndexes', indexes);\n * });\n * ```\n */\nexport function indexes(instanceId, api) {\n    return memo(instanceId, () => indicesCache\n        ? of(indicesCache)\n        : (api.query.indices\n            ? queryAccounts(api).pipe(startWith({}))\n            : of({})).pipe(map((indices) => {\n            indicesCache = indices;\n            return indices;\n        })));\n}\n","import { map, of } from 'rxjs';\nimport { memo } from '../util/index.js';\n/**\n * @name indexToId\n * @param {( AccountIndex | string )} accountIndex - An accounts index in different formats.\n * @returns Returns the corresponding AccountId.\n * @example\n * <BR>\n *\n * ```javascript\n * api.derive.accounts.indexToId('F7Hs', (accountId) => {\n *   console.log(`The AccountId of F7Hs is ${accountId}`);\n * });\n * ```\n */\nexport function indexToId(instanceId, api) {\n    return memo(instanceId, (accountIndex) => api.query.indices\n        ? api.query.indices.accounts(accountIndex).pipe(map((optResult) => optResult.unwrapOr([])[0]))\n        : of(undefined));\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { u8aToString } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nfunction retrieveNick(api, accountId) {\n    return (accountId && api.query['nicks']?.['nameOf']\n        ? api.query['nicks']['nameOf'](accountId)\n        : of(undefined)).pipe(map((nameOf) => nameOf?.isSome\n        ? u8aToString(nameOf.unwrap()[0]).substring(0, api.consts['nicks']['maxLength'].toNumber())\n        : undefined));\n}\n/**\n * @name info\n * @description Returns aux. info with regards to an account, current that includes the accountId, accountIndex and nickname\n */\nexport function info(instanceId, api) {\n    return memo(instanceId, (address) => api.derive.accounts.idAndIndex(address).pipe(switchMap(([accountId, accountIndex]) => combineLatest([\n        of({ accountId, accountIndex }),\n        api.derive.accounts.identity(accountId),\n        retrieveNick(api, accountId)\n    ])), map(([{ accountId, accountIndex }, identity, nickname]) => ({\n        accountId, accountIndex, identity, nickname\n    }))));\n}\n","import { of } from 'rxjs';\nimport { isFunction } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nexport function getInstance(api, section) {\n    const instances = api.registry.getModuleInstances(api.runtimeVersion.specName, section);\n    const name = instances?.length\n        ? instances[0]\n        : section;\n    return api.query[name];\n}\nexport function withSection(section, fn) {\n    return (instanceId, api) => memo(instanceId, fn(getInstance(api, section), api, instanceId));\n}\nexport function callMethod(method, empty) {\n    return (section) => withSection(section, (query) => () => isFunction(query?.[method])\n        ? query[method]()\n        : of(empty));\n}\n","import { callMethod } from './helpers.js';\nexport const members = /*#__PURE__*/ callMethod('members', []);\n","import { catchError, combineLatest, map, of, switchMap } from 'rxjs';\nimport { isFunction } from '@polkadot/util';\nimport { firstObservable } from '../util/index.js';\nimport { callMethod, withSection } from './helpers.js';\nfunction parse(api, [hashes, proposals, votes]) {\n    return proposals.map((o, index) => ({\n        hash: api.registry.createType('Hash', hashes[index]),\n        proposal: o && o.isSome\n            ? o.unwrap()\n            : null,\n        votes: votes[index].unwrapOr(null)\n    }));\n}\nfunction _proposalsFrom(api, query, hashes) {\n    return (isFunction(query?.proposals) && hashes.length\n        ? combineLatest([\n            of(hashes),\n            // this should simply be api.query[section].proposalOf.multi<Option<Proposal>>(hashes),\n            // however we have had cases on Edgeware where the indices have moved around after an\n            // upgrade, which results in invalid on-chain data\n            query.proposalOf.multi(hashes).pipe(catchError(() => of(hashes.map(() => null)))),\n            query.voting.multi(hashes)\n        ])\n        : of([[], [], []])).pipe(map((r) => parse(api, r)));\n}\nexport function hasProposals(section) {\n    return withSection(section, (query) => () => of(isFunction(query?.proposals)));\n}\nexport function proposals(section) {\n    return withSection(section, (query, api) => () => api.derive[section].proposalHashes().pipe(switchMap((all) => _proposalsFrom(api, query, all))));\n}\nexport function proposal(section) {\n    return withSection(section, (query, api) => (hash) => isFunction(query?.proposals)\n        ? firstObservable(_proposalsFrom(api, query, [hash]))\n        : of(null));\n}\nexport const proposalCount = /*#__PURE__*/ callMethod('proposalCount', null);\nexport const proposalHashes = /*#__PURE__*/ callMethod('proposals', []);\n","import { map, of } from 'rxjs';\nimport { isFunction } from '@polkadot/util';\nimport { withSection } from './helpers.js';\nexport function prime(section) {\n    return withSection(section, (query) => () => isFunction(query?.prime)\n        ? query.prime().pipe(map((o) => o.unwrapOr(null)))\n        : of(null));\n}\n","import { hasProposals as collectiveHasProposals, members as collectiveMembers, prime as collectivePrime, proposal as collectiveProposal, proposalCount as collectiveProposalCount, proposalHashes as collectiveProposalHashes, proposals as collectiveProposals } from '../collective/index.js';\nexport const members = /*#__PURE__*/ collectiveMembers('allianceMotion');\nexport const hasProposals = /*#__PURE__*/ collectiveHasProposals('allianceMotion');\nexport const proposal = /*#__PURE__*/ collectiveProposal('allianceMotion');\nexport const proposalCount = /*#__PURE__*/ collectiveProposalCount('allianceMotion');\nexport const proposalHashes = /*#__PURE__*/ collectiveProposalHashes('allianceMotion');\nexport const proposals = /*#__PURE__*/ collectiveProposals('allianceMotion');\nexport const prime = /*#__PURE__*/ collectivePrime('allianceMotion');\n","export function getQueryInterface(api) {\n    return (\n    // latest substrate & polkadot\n    api.query.voterList ||\n        // previous substrate\n        api.query['voterBagsList'] ||\n        api.query['bagsList']);\n}\n","import { map, of, switchMap } from 'rxjs';\nimport { BN_ZERO, bnToBn, objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nimport { getQueryInterface } from './util.js';\nfunction orderBags(ids, bags) {\n    const sorted = ids\n        .map((id, index) => ({\n        bag: bags[index].unwrapOr(null),\n        id,\n        key: id.toString()\n    }))\n        .sort((a, b) => b.id.cmp(a.id));\n    const max = sorted.length - 1;\n    return sorted.map((entry, index) => objectSpread(entry, {\n        bagLower: index === max\n            ? BN_ZERO\n            : sorted[index + 1].id,\n        bagUpper: entry.id,\n        index\n    }));\n}\nexport function _getIds(instanceId, api) {\n    const query = getQueryInterface(api);\n    return memo(instanceId, (_ids) => {\n        const ids = _ids.map((id) => bnToBn(id));\n        return ids.length\n            ? query.listBags.multi(ids).pipe(map((bags) => orderBags(ids, bags)))\n            : of([]);\n    });\n}\nexport function all(instanceId, api) {\n    const query = getQueryInterface(api);\n    return memo(instanceId, () => query.listBags.keys().pipe(switchMap((keys) => api.derive.bagsList._getIds(keys.map(({ args: [id] }) => id))), map((list) => list.filter(({ bag }) => bag))));\n}\nexport function get(instanceId, api) {\n    return memo(instanceId, (id) => api.derive.bagsList._getIds([bnToBn(id)]).pipe(map((bags) => bags[0])));\n}\n","import { map, switchMap } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nexport function expand(instanceId, api) {\n    return memo(instanceId, (bag) => api.derive.bagsList.listNodes(bag.bag).pipe(map((nodes) => objectSpread({ nodes }, bag))));\n}\nexport function getExpanded(instanceId, api) {\n    return memo(instanceId, (id) => api.derive.bagsList.get(id).pipe(switchMap((bag) => api.derive.bagsList.expand(bag))));\n}\n","/**\n * @name nextTick\n * @description Defer the operation to the queue for evaluation on the next tick\n */\nexport function nextTick(onExec, onError) {\n    // While Promise.resolve().then(...) would defer to the nextTick, this\n    // actually does not play as nicely in browsers like the setTimeout(...)\n    // approach. So the safer, though less optimal approach is the one taken here\n    setTimeout(() => {\n        Promise\n            .resolve()\n            .then(() => {\n            onExec();\n        })\n            .catch((error) => {\n            if (onError) {\n                onError(error);\n            }\n            else {\n                console.error(error);\n            }\n        });\n    }, 0);\n}\n","import { BehaviorSubject, map, of, switchMap, tap, toArray } from 'rxjs';\nimport { nextTick } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nimport { getQueryInterface } from './util.js';\nfunction traverseLinks(api, head) {\n    const subject = new BehaviorSubject(head);\n    const query = getQueryInterface(api);\n    return subject.pipe(switchMap((account) => query.listNodes(account)), tap((node) => {\n        nextTick(() => {\n            node.isSome && node.value.next.isSome\n                ? subject.next(node.unwrap().next.unwrap())\n                : subject.complete();\n        });\n    }), toArray(), // toArray since we want to startSubject to be completed\n    map((all) => all.map((o) => o.unwrap())));\n}\nexport function listNodes(instanceId, api) {\n    return memo(instanceId, (bag) => bag && bag.head.isSome\n        ? traverseLinks(api, bag.head.unwrap())\n        : of([]));\n}\n","/** @internal */\nexport function createCmp(cmp) {\n    return (...items) => {\n        const count = items.length;\n        if (count === 0) {\n            throw new Error('Must provide one or more arguments');\n        }\n        let result = items[0];\n        for (let i = 1; i < count; i++) {\n            if (cmp(items[i], result)) {\n                result = items[i];\n            }\n        }\n        return result;\n    };\n}\n","import { createCmp } from '../bi/helpers.js';\n/**\n * @name bnMax\n * @summary Finds and returns the highest value in an array of BNs.\n * @example\n * <BR>\n *\n * ```javascript\n * import BN from 'bn.js';\n * import { bnMax } from '@polkadot/util';\n *\n * bnMax([new BN(1), new BN(3), new BN(2)]).toString(); // => '3'\n * ```\n */\nexport const bnMax = /*#__PURE__*/ createCmp((a, b) => a.gt(b));\n/**\n * @name bnMin\n * @summary Finds and returns the smallest value in an array of BNs.\n * @example\n * <BR>\n *\n * ```javascript\n * import BN from 'bn.js';\n * import { bnMin } from '@polkadot/util';\n *\n * bnMin([new BN(1), new BN(3), new BN(2)]).toString(); // => '1'\n * ```\n */\nexport const bnMin = /*#__PURE__*/ createCmp((a, b) => a.lt(b));\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { BN, BN_ZERO, bnMax, bnMin, isFunction, objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nconst VESTING_ID = '0x76657374696e6720';\nfunction calcLocked(api, bestNumber, locks) {\n    let lockedBalance = api.registry.createType('Balance');\n    let lockedBreakdown = [];\n    let vestingLocked = api.registry.createType('Balance');\n    let allLocked = false;\n    if (Array.isArray(locks)) {\n        // only get the locks that are valid until passed the current block\n        lockedBreakdown = locks.filter(({ until }) => !until || (bestNumber && until.gt(bestNumber)));\n        allLocked = lockedBreakdown.some(({ amount }) => amount && amount.isMax());\n        vestingLocked = api.registry.createType('Balance', lockedBreakdown.filter(({ id }) => id.eq(VESTING_ID)).reduce((result, { amount }) => result.iadd(amount), new BN(0)));\n        // get the maximum of the locks according to https://github.com/paritytech/substrate/blob/master/srml/balances/src/lib.rs#L699\n        const notAll = lockedBreakdown.filter(({ amount }) => amount && !amount.isMax());\n        if (notAll.length) {\n            lockedBalance = api.registry.createType('Balance', bnMax(...notAll.map(({ amount }) => amount)));\n        }\n    }\n    return { allLocked, lockedBalance, lockedBreakdown, vestingLocked };\n}\nfunction calcShared(api, bestNumber, data, locks) {\n    const { allLocked, lockedBalance, lockedBreakdown, vestingLocked } = calcLocked(api, bestNumber, locks);\n    return objectSpread({}, data, {\n        availableBalance: api.registry.createType('Balance', allLocked ? 0 : bnMax(new BN(0), data?.freeBalance ? data.freeBalance.sub(lockedBalance) : new BN(0))),\n        lockedBalance,\n        lockedBreakdown,\n        vestingLocked\n    });\n}\nfunction calcVesting(bestNumber, shared, _vesting) {\n    // Calculate the vesting balances,\n    //  - offset = balance locked at startingBlock\n    //  - perBlock is the unlock amount\n    const vesting = _vesting || [];\n    const isVesting = !shared.vestingLocked.isZero();\n    const vestedBalances = vesting.map(({ locked, perBlock, startingBlock }) => bestNumber.gt(startingBlock)\n        ? bnMin(locked, perBlock.mul(bestNumber.sub(startingBlock)))\n        : BN_ZERO);\n    const vestedBalance = vestedBalances.reduce((all, value) => all.iadd(value), new BN(0));\n    const vestingTotal = vesting.reduce((all, { locked }) => all.iadd(locked), new BN(0));\n    return {\n        isVesting,\n        vestedBalance,\n        vestedClaimable: isVesting\n            ? shared.vestingLocked.sub(vestingTotal.sub(vestedBalance))\n            : BN_ZERO,\n        vesting: vesting\n            .map(({ locked, perBlock, startingBlock }, index) => ({\n            endBlock: locked.div(perBlock).iadd(startingBlock),\n            locked,\n            perBlock,\n            startingBlock,\n            vested: vestedBalances[index]\n        }))\n            .filter(({ locked }) => !locked.isZero()),\n        vestingTotal\n    };\n}\nfunction calcBalances(api, result) {\n    const [data, [vesting, allLocks, namedReserves], bestNumber] = result;\n    const shared = calcShared(api, bestNumber, data, allLocks[0]);\n    return objectSpread(shared, calcVesting(bestNumber, shared, vesting), {\n        accountId: data.accountId,\n        accountNonce: data.accountNonce,\n        additional: allLocks\n            .slice(1)\n            .map((l, index) => calcShared(api, bestNumber, data.additional[index], l)),\n        namedReserves\n    });\n}\nfunction queryOld(api, accountId) {\n    return combineLatest([\n        api.query.balances.locks(accountId),\n        api.query.balances['vesting'](accountId)\n    ]).pipe(map(([locks, optVesting]) => {\n        let vestingNew = null;\n        if (optVesting.isSome) {\n            const { offset: locked, perBlock, startingBlock } = optVesting.unwrap();\n            vestingNew = api.registry.createType('VestingInfo', { locked, perBlock, startingBlock });\n        }\n        return [\n            vestingNew\n                ? [vestingNew]\n                : null,\n            [locks],\n            []\n        ];\n    }));\n}\nconst isNonNullable = (nullable) => !!nullable;\nfunction createCalls(calls) {\n    return [\n        calls.map((c) => !c),\n        calls.filter(isNonNullable)\n    ];\n}\nfunction queryCurrent(api, accountId, balanceInstances = ['balances']) {\n    const [lockEmpty, lockQueries] = createCalls(balanceInstances.map((m) => api.derive[m]?.customLocks || api.query[m]?.locks));\n    const [reserveEmpty, reserveQueries] = createCalls(balanceInstances.map((m) => api.query[m]?.reserves));\n    return combineLatest([\n        api.query.vesting?.vesting\n            ? api.query.vesting.vesting(accountId)\n            : of(api.registry.createType('Option<VestingInfo>')),\n        lockQueries.length\n            ? combineLatest(lockQueries.map((c) => c(accountId)))\n            : of([]),\n        reserveQueries.length\n            ? combineLatest(reserveQueries.map((c) => c(accountId)))\n            : of([])\n    ]).pipe(map(([opt, locks, reserves]) => {\n        let offsetLock = -1;\n        let offsetReserve = -1;\n        const vesting = opt.unwrapOr(null);\n        return [\n            vesting\n                ? Array.isArray(vesting)\n                    ? vesting\n                    : [vesting]\n                : null,\n            lockEmpty.map((e) => e ? api.registry.createType('Vec<BalanceLock>') : locks[++offsetLock]),\n            reserveEmpty.map((e) => e ? api.registry.createType('Vec<PalletBalancesReserveData>') : reserves[++offsetReserve])\n        ];\n    }));\n}\n/**\n * @name all\n * @param {( AccountIndex | AccountId | Address | string )} address - An accounts Id in different formats.\n * @returns An object containing the results of various balance queries\n * @example\n * <BR>\n *\n * ```javascript\n * const ALICE = 'F7Hs';\n *\n * api.derive.balances.all(ALICE, ({ accountId, lockedBalance }) => {\n *   console.log(`The account ${accountId} has a locked balance ${lockedBalance} units.`);\n * });\n * ```\n */\nexport function all(instanceId, api) {\n    const balanceInstances = api.registry.getModuleInstances(api.runtimeVersion.specName, 'balances');\n    return memo(instanceId, (address) => combineLatest([\n        api.derive.balances.account(address),\n        isFunction(api.query.system?.account) || isFunction(api.query.balances?.account)\n            ? queryCurrent(api, address, balanceInstances)\n            : queryOld(api, address)\n    ]).pipe(switchMap(([account, locks]) => combineLatest([\n        of(account),\n        of(locks),\n        api.derive.chain.bestNumber()\n    ])), map((result) => calcBalances(api, result))));\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { isFunction, objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nfunction zeroBalance(api) {\n    return api.registry.createType('Balance');\n}\nfunction getBalance(api, [freeBalance, reservedBalance, frozenFee, frozenMisc]) {\n    const votingBalance = api.registry.createType('Balance', freeBalance.toBn());\n    return {\n        freeBalance,\n        frozenFee,\n        frozenMisc,\n        reservedBalance,\n        votingBalance\n    };\n}\nfunction calcBalances(api, [accountId, [accountNonce, [primary, ...additional]]]) {\n    return objectSpread({\n        accountId,\n        accountNonce,\n        additional: additional.map((b) => getBalance(api, b))\n    }, getBalance(api, primary));\n}\nfunction queryBalancesFree(api, accountId) {\n    return combineLatest([\n        api.query.balances['freeBalance'](accountId),\n        api.query.balances['reservedBalance'](accountId),\n        api.query.system['accountNonce'](accountId)\n    ]).pipe(map(([freeBalance, reservedBalance, accountNonce]) => [\n        accountNonce,\n        [[freeBalance, reservedBalance, zeroBalance(api), zeroBalance(api)]]\n    ]));\n}\nfunction queryNonceOnly(api, accountId) {\n    const fill = (nonce) => [\n        nonce,\n        [[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]]\n    ];\n    return isFunction(api.query.system.account)\n        ? api.query.system.account(accountId).pipe(map(({ nonce }) => fill(nonce)))\n        : isFunction(api.query.system['accountNonce'])\n            ? api.query.system['accountNonce'](accountId).pipe(map((nonce) => fill(nonce)))\n            : of(fill(api.registry.createType('Index')));\n}\nfunction queryBalancesAccount(api, accountId, modules = ['balances']) {\n    const balances = modules\n        .map((m) => api.derive[m]?.customAccount || api.query[m]?.account)\n        .filter((q) => isFunction(q));\n    const extract = (nonce, data) => [\n        nonce,\n        data.map(({ feeFrozen, free, miscFrozen, reserved }) => [free, reserved, feeFrozen, miscFrozen])\n    ];\n    // NOTE this is for the first case where we do have instances specified\n    return balances.length\n        ? isFunction(api.query.system.account)\n            ? combineLatest([\n                api.query.system.account(accountId),\n                ...balances.map((c) => c(accountId))\n            ]).pipe(map(([{ nonce }, ...balances]) => extract(nonce, balances)))\n            : combineLatest([\n                api.query.system['accountNonce'](accountId),\n                ...balances.map((c) => c(accountId))\n            ]).pipe(map(([nonce, ...balances]) => extract(nonce, balances)))\n        : queryNonceOnly(api, accountId);\n}\nfunction querySystemAccount(api, accountId) {\n    // AccountInfo is current, support old, eg. Edgeware\n    return api.query.system.account(accountId).pipe(map((infoOrTuple) => {\n        const data = infoOrTuple.nonce\n            ? infoOrTuple.data\n            : infoOrTuple[1];\n        const nonce = infoOrTuple.nonce || infoOrTuple[0];\n        if (!data || data.isEmpty) {\n            return [\n                nonce,\n                [[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]]\n            ];\n        }\n        const { feeFrozen, free, miscFrozen, reserved } = data;\n        return [\n            nonce,\n            [[free, reserved, feeFrozen, miscFrozen]]\n        ];\n    }));\n}\n/**\n * @name account\n * @param {( AccountIndex | AccountId | Address | string )} address - An accounts Id in different formats.\n * @returns An object containing the results of various balance queries\n * @example\n * <BR>\n *\n * ```javascript\n * const ALICE = 'F7Hs';\n *\n * api.derive.balances.all(ALICE, ({ accountId, lockedBalance }) => {\n *   console.log(`The account ${accountId} has a locked balance ${lockedBalance} units.`);\n * });\n * ```\n */\nexport function account(instanceId, api) {\n    const balanceInstances = api.registry.getModuleInstances(api.runtimeVersion.specName, 'balances');\n    const nonDefaultBalances = balanceInstances && balanceInstances[0] !== 'balances';\n    return memo(instanceId, (address) => api.derive.accounts.accountId(address).pipe(switchMap((accountId) => (accountId\n        ? combineLatest([\n            of(accountId),\n            nonDefaultBalances\n                ? queryBalancesAccount(api, accountId, balanceInstances)\n                : isFunction(api.query.system?.account)\n                    ? querySystemAccount(api, accountId)\n                    : isFunction(api.query.balances?.account)\n                        ? queryBalancesAccount(api, accountId)\n                        : isFunction(api.query.balances?.['freeBalance'])\n                            ? queryBalancesFree(api, accountId)\n                            : queryNonceOnly(api, accountId)\n        ])\n        : of([api.registry.createType('AccountId'), [\n                api.registry.createType('Index'),\n                [[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]]\n            ]]))), map((result) => calcBalances(api, result))));\n}\n","import { combineLatest, of } from 'rxjs';\nimport { memo } from '../util/index.js';\nexport function votingBalances(instanceId, api) {\n    return memo(instanceId, (addresses) => !addresses?.length\n        ? of([])\n        : combineLatest(addresses.map((accountId) => api.derive.balances.account(accountId))));\n}\n","import { all } from './all.js';\nexport * from './account.js';\nexport * from './votingBalances.js';\nconst votingBalance = all;\nexport { all, votingBalance };\n","export function filterBountiesProposals(api, allProposals) {\n    const bountyTxBase = api.tx.bounties ? api.tx.bounties : api.tx.treasury;\n    const bountyProposalCalls = [bountyTxBase.approveBounty, bountyTxBase.closeBounty, bountyTxBase.proposeCurator, bountyTxBase.unassignCurator];\n    return allProposals.filter((proposal) => bountyProposalCalls.find((bountyCall) => proposal.proposal && bountyCall.is(proposal.proposal)));\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nimport { filterBountiesProposals } from './helpers/filterBountyProposals.js';\nfunction parseResult([maybeBounties, maybeDescriptions, ids, bountyProposals]) {\n    const bounties = [];\n    maybeBounties.forEach((bounty, index) => {\n        if (bounty.isSome) {\n            bounties.push({\n                bounty: bounty.unwrap(),\n                description: maybeDescriptions[index].unwrapOrDefault().toUtf8(),\n                index: ids[index],\n                proposals: bountyProposals.filter((bountyProposal) => bountyProposal.proposal && ids[index].eq(bountyProposal.proposal.args[0]))\n            });\n        }\n    });\n    return bounties;\n}\nexport function bounties(instanceId, api) {\n    const bountyBase = api.query.bounties || api.query.treasury;\n    return memo(instanceId, () => bountyBase.bounties\n        ? combineLatest([\n            bountyBase.bountyCount(),\n            api.query.council\n                ? api.query.council.proposalCount()\n                : of(0)\n        ]).pipe(switchMap(() => combineLatest([\n            bountyBase.bounties.keys(),\n            api.derive.council\n                ? api.derive.council.proposals()\n                : of([])\n        ])), switchMap(([keys, proposals]) => {\n            const ids = keys.map(({ args: [id] }) => id);\n            return combineLatest([\n                bountyBase.bounties.multi(ids),\n                bountyBase.bountyDescriptions.multi(ids),\n                of(ids),\n                of(filterBountiesProposals(api, proposals))\n            ]);\n        }), map(parseResult))\n        : of(parseResult([[], [], [], []])));\n}\n","import { isOnObject } from './helpers.js';\n/**\n * @name isCompact\n * @summary Tests for SCALE-Compact-like object instance.\n */\nexport const isCompact = /*#__PURE__*/ isOnObject('toBigInt', 'toBn', 'toNumber', 'unwrap');\n","import { isCompact } from '@polkadot/util';\nexport function unwrapBlockNumber(hdr) {\n    return isCompact(hdr.number)\n        ? hdr.number.unwrap()\n        : hdr.number;\n}\n","import { combineLatest, map, mergeMap, of, switchMap } from 'rxjs';\nimport { memo, unwrapBlockNumber } from '../util/index.js';\nexport function createBlockNumberDerive(fn) {\n    return (instanceId, api) => memo(instanceId, () => fn(api).pipe(map(unwrapBlockNumber)));\n}\n/** @internal */\nfunction getAuthorDetailsWithAt(header, queryAt) {\n    const validators = queryAt.session?.validators\n        ? queryAt.session.validators()\n        : of(null);\n    // nimbus consensus stores the session key of the block author in header logs\n    const { logs: [log] } = header.digest;\n    const loggedAuthor = (log && ((log.isConsensus && log.asConsensus[0].isNimbus && log.asConsensus[1]) ||\n        (log.isPreRuntime && log.asPreRuntime[0].isNimbus && log.asPreRuntime[1])));\n    if (loggedAuthor) {\n        // use the author mapping pallet, if available (ie: moonbeam, moonriver), to map session (nimbus) key to author (collator/validator) key\n        if (queryAt['authorMapping']?.['mappingWithDeposit']) {\n            return combineLatest([\n                of(header),\n                validators,\n                queryAt['authorMapping']['mappingWithDeposit'](loggedAuthor).pipe(map((o) => o.unwrapOr({ account: null }).account))\n            ]);\n        }\n        // fall back to session and parachain staking pallets, if available (ie: manta, calamari), to map session (nimbus) key to author (collator) key\n        if (queryAt['parachainStaking']?.['selectedCandidates'] && queryAt.session?.nextKeys) {\n            const loggedHex = loggedAuthor.toHex();\n            return combineLatest([\n                of(header),\n                validators,\n                queryAt['parachainStaking']['selectedCandidates']().pipe(mergeMap((selectedCandidates) => combineLatest([\n                    of(selectedCandidates),\n                    queryAt.session.nextKeys.multi(selectedCandidates).pipe(map((nextKeys) => nextKeys.findIndex((o) => o.unwrapOrDefault().nimbus.toHex() === loggedHex)))\n                ])), map(([selectedCandidates, index]) => index === -1\n                    ? null\n                    : selectedCandidates[index]))\n            ]);\n        }\n    }\n    // normal operation, non-mapping\n    return combineLatest([\n        of(header),\n        validators,\n        of(null)\n    ]);\n}\nexport function getAuthorDetails(api, header, blockHash) {\n    // For on-chain state, we need to retrieve it as per the start\n    // of the block being constructed, i.e. session validators would\n    // be at the point of the block construction, not when all operations\n    // has been supplied.\n    //\n    // However for the first block (no parentHash available), we would\n    // just use the as-is\n    return api.queryAt(header.parentHash.isEmpty\n        ? blockHash || header.hash\n        : header.parentHash).pipe(switchMap((queryAt) => getAuthorDetailsWithAt(header, queryAt)));\n}\n","import { createBlockNumberDerive } from './util.js';\n/**\n * @name bestNumber\n * @returns The latest block number.\n * @example\n * <BR>\n *\n * ```javascript\n * api.derive.chain.bestNumber((blockNumber) => {\n *   console.log(`the current best block is #${blockNumber}`);\n * });\n * ```\n */\nexport const bestNumber = /*#__PURE__*/ createBlockNumberDerive((api) => api.rpc.chain.subscribeNewHeads());\n","import { createBlockNumberDerive } from './util.js';\n/**\n * @name bestNumberFinalized\n * @returns A BlockNumber\n * @description Get the latest finalized block number.\n * @example\n * <BR>\n *\n * ```javascript\n * api.derive.chain.bestNumberFinalized((blockNumber) => {\n *   console.log(`the current finalized block is #${blockNumber}`);\n * });\n * ```\n */\nexport const bestNumberFinalized = /*#__PURE__*/ createBlockNumberDerive((api) => api.rpc.chain.subscribeFinalizedHeads());\n","import { combineLatest, map } from 'rxjs';\nimport { memo } from '../util/index.js';\n/**\n * @name bestNumberLag\n * @returns A number of blocks\n * @description Calculates the lag between finalized head and best head\n * @example\n * <BR>\n *\n * ```javascript\n * api.derive.chain.bestNumberLag((lag) => {\n *   console.log(`finalized is ${lag} blocks behind head`);\n * });\n * ```\n */\nexport function bestNumberLag(instanceId, api) {\n    return memo(instanceId, () => combineLatest([\n        api.derive.chain.bestNumber(),\n        api.derive.chain.bestNumberFinalized()\n    ]).pipe(map(([bestNumber, bestNumberFinalized]) => api.registry.createType('BlockNumber', bestNumber.sub(bestNumberFinalized)))));\n}\n","export function extractAuthor(digest, sessionValidators) {\n    const [citem] = digest.logs.filter((e) => e.isConsensus);\n    const [pitem] = digest.logs.filter((e) => e.isPreRuntime);\n    const [sitem] = digest.logs.filter((e) => e.isSeal);\n    let accountId;\n    try {\n        // This is critical to be first for BABE (before Consensus)\n        // If not first, we end up dropping the author at session-end\n        if (pitem) {\n            const [engine, data] = pitem.asPreRuntime;\n            accountId = engine.extractAuthor(data, sessionValidators);\n        }\n        if (!accountId && citem) {\n            const [engine, data] = citem.asConsensus;\n            accountId = engine.extractAuthor(data, sessionValidators);\n        }\n        // SEAL, still used in e.g. Kulupu for pow\n        if (!accountId && sitem) {\n            const [engine, data] = sitem.asSeal;\n            accountId = engine.extractAuthor(data, sessionValidators);\n        }\n    }\n    catch {\n        // ignore\n    }\n    return accountId;\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { createSignedBlockExtended } from '../type/index.js';\nimport { memo } from '../util/index.js';\nimport { getAuthorDetails } from './util.js';\n/**\n * @name getBlock\n * @param {( Uint8Array | string )} hash - A block hash as U8 array or string.\n * @description Get a specific block (e.g. rpc.chain.getBlock) and extend it with the author\n * @example\n * <BR>\n *\n * ```javascript\n * const { author, block } = await api.derive.chain.getBlock('0x123...456');\n *\n * console.log(`block #${block.header.number} was authored by ${author}`);\n * ```\n */\nexport function getBlock(instanceId, api) {\n    return memo(instanceId, (blockHash) => combineLatest([\n        api.rpc.chain.getBlock(blockHash),\n        api.queryAt(blockHash)\n    ]).pipe(switchMap(([signedBlock, queryAt]) => combineLatest([\n        of(signedBlock),\n        queryAt.system.events(),\n        getAuthorDetails(api, signedBlock.block.header, blockHash)\n    ])), map(([signedBlock, events, [, validators, author]]) => createSignedBlockExtended(events.registry, signedBlock, events, validators, author))));\n}\n","import { extractAuthor } from './util.js';\nfunction mapExtrinsics(extrinsics, records) {\n    return extrinsics.map((extrinsic, index) => {\n        let dispatchError;\n        let dispatchInfo;\n        const events = records\n            .filter(({ phase }) => phase.isApplyExtrinsic && phase.asApplyExtrinsic.eq(index))\n            .map(({ event }) => {\n            if (event.section === 'system') {\n                if (event.method === 'ExtrinsicSuccess') {\n                    dispatchInfo = event.data[0];\n                }\n                else if (event.method === 'ExtrinsicFailed') {\n                    dispatchError = event.data[0];\n                    dispatchInfo = event.data[1];\n                }\n            }\n            return event;\n        });\n        return { dispatchError, dispatchInfo, events, extrinsic };\n    });\n}\nexport function createSignedBlockExtended(registry, block, events, validators, author) {\n    // an instance of the base extrinsic for us to extend\n    const SignedBlockBase = registry.createClass('SignedBlock');\n    class Implementation extends SignedBlockBase {\n        constructor(registry, block, events, validators, author) {\n            super(registry, block);\n            this.__internal__author = author || extractAuthor(this.block.header.digest, validators || []);\n            this.__internal__events = events || [];\n            this.__internal__extrinsics = mapExtrinsics(this.block.extrinsics, this.__internal__events);\n            this.createdAtHash = block?.createdAtHash;\n        }\n        /**\n         * @description Convenience method, returns the author for the block\n         */\n        get author() {\n            return this.__internal__author;\n        }\n        /**\n         * @description Convenience method, returns the events associated with the block\n         */\n        get events() {\n            return this.__internal__events;\n        }\n        /**\n         * @description Returns the extrinsics and their events, mapped\n         */\n        get extrinsics() {\n            return this.__internal__extrinsics;\n        }\n    }\n    return new Implementation(registry, block, events, validators, author);\n}\n","import { switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nexport function getBlockByNumber(instanceId, api) {\n    return memo(instanceId, (blockNumber) => api.rpc.chain.getBlockHash(blockNumber).pipe(switchMap((h) => api.derive.chain.getBlock(h))));\n}\n","import { extractAuthor } from './util.js';\nexport function createHeaderExtended(registry, header, validators, author) {\n    // an instance of the base extrinsic for us to extend\n    const HeaderBase = registry.createClass('Header');\n    class Implementation extends HeaderBase {\n        constructor(registry, header, validators, author) {\n            super(registry, header);\n            this.__internal__author = author || extractAuthor(this.digest, validators || []);\n            this.createdAtHash = header?.createdAtHash;\n        }\n        /**\n         * @description Convenience method, returns the author for the block\n         */\n        get author() {\n            return this.__internal__author;\n        }\n    }\n    return new Implementation(registry, header, validators, author);\n}\n","import { map, switchMap } from 'rxjs';\nimport { createHeaderExtended } from '../type/index.js';\nimport { memo } from '../util/index.js';\nimport { getAuthorDetails } from './util.js';\n/**\n * @name getHeader\n * @param {( Uint8Array | string )} hash - A block hash as U8 array or string.\n * @returns An array containing the block header and the block author\n * @description Get a specific block header and extend it with the author\n * @example\n * <BR>\n *\n * ```javascript\n * const { author, number } = await api.derive.chain.getHeader('0x123...456');\n *\n * console.log(`block #${number} was authored by ${author}`);\n * ```\n */\nexport function getHeader(instanceId, api) {\n    return memo(instanceId, (blockHash) => api.rpc.chain.getHeader(blockHash).pipe(switchMap((header) => getAuthorDetails(api, header, blockHash)), map(([header, validators, author]) => createHeaderExtended((validators || header).registry, header, validators, author))));\n}\n","import { switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\n/**\n * @name subscribeFinalizedBlocks\n * @returns The finalized block & events for that block\n */\nexport function subscribeFinalizedBlocks(instanceId, api) {\n    return memo(instanceId, () => api.derive.chain.subscribeFinalizedHeads().pipe(switchMap((header) => api.derive.chain.getBlock(header.createdAtHash || header.hash))));\n}\n","import { from, of, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\n/**\n * Returns a header range from startHash to to (not including) endHash, i.e. lastBlock.parentHash === endHash\n */\nexport function _getHeaderRange(instanceId, api) {\n    return memo(instanceId, (startHash, endHash, prev = []) => api.rpc.chain.getHeader(startHash).pipe(switchMap((header) => header.parentHash.eq(endHash)\n        ? of([header, ...prev])\n        : api.derive.chain._getHeaderRange(header.parentHash, endHash, [header, ...prev]))));\n}\n/**\n * @name subscribeFinalizedHeads\n * @description An observable of the finalized block headers. Unlike the base\n * chain.subscribeFinalizedHeads this does not skip any headers. Since finalization\n * may skip specific blocks (finalization happens in terms of chains), this version\n * of the derive tracks missing headers (since last  retrieved) and provides them\n * to the caller\n */\nexport function subscribeFinalizedHeads(instanceId, api) {\n    return memo(instanceId, () => {\n        let prevHash = null;\n        return api.rpc.chain.subscribeFinalizedHeads().pipe(switchMap((header) => {\n            const endHash = prevHash;\n            const startHash = header.parentHash;\n            prevHash = header.createdAtHash = header.hash;\n            return endHash === null || startHash.eq(endHash)\n                ? of(header)\n                : api.derive.chain._getHeaderRange(startHash, endHash, [header]).pipe(switchMap((headers) => from(headers)));\n        }));\n    });\n}\n","import { switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\n/**\n * @name subscribeNewBlocks\n * @returns The latest block & events for that block\n */\nexport function subscribeNewBlocks(instanceId, api) {\n    return memo(instanceId, () => api.derive.chain.subscribeNewHeads().pipe(switchMap((header) => api.derive.chain.getBlock(header.createdAtHash || header.hash))));\n}\n","import { map, switchMap } from 'rxjs';\nimport { createHeaderExtended } from '../type/index.js';\nimport { memo } from '../util/index.js';\nimport { getAuthorDetails } from './util.js';\n/**\n * @name subscribeNewHeads\n * @returns A header with the current header (including extracted author)\n * @description An observable of the current block header and it's author\n * @example\n * <BR>\n *\n * ```javascript\n * api.derive.chain.subscribeNewHeads((header) => {\n *   console.log(`block #${header.number} was authored by ${header.author}`);\n * });\n * ```\n */\nexport function subscribeNewHeads(instanceId, api) {\n    return memo(instanceId, () => api.rpc.chain.subscribeNewHeads().pipe(switchMap((header) => getAuthorDetails(api, header)), map(([header, validators, author]) => {\n        header.createdAtHash = header.hash;\n        return createHeaderExtended(header.registry, header, validators, author);\n    })));\n}\n","import { map, of } from 'rxjs';\nimport { memo } from '../util/index.js';\nfunction queryConstants(api) {\n    return of([\n        // deprecated\n        api.consts.contracts['callBaseFee'] || api.registry.createType('Balance'),\n        api.consts.contracts['contractFee'] || api.registry.createType('Balance'),\n        api.consts.contracts['creationFee'] || api.registry.createType('Balance'),\n        api.consts.contracts['transactionBaseFee'] || api.registry.createType('Balance'),\n        api.consts.contracts['transactionByteFee'] || api.registry.createType('Balance'),\n        api.consts.contracts['transferFee'] || api.registry.createType('Balance'),\n        // current\n        api.consts.contracts['rentByteFee'] || api.registry.createType('Balance'),\n        api.consts.contracts['rentDepositOffset'] || api.registry.createType('Balance'),\n        api.consts.contracts['surchargeReward'] || api.registry.createType('Balance'),\n        api.consts.contracts['tombstoneDeposit'] || api.registry.createType('Balance')\n    ]);\n}\n/**\n * @name fees\n * @returns An object containing the combined results of the queries for\n * all relevant contract fees as declared in the substrate chain spec.\n * @example\n * <BR>\n *\n * ```javascript\n * api.derive.contracts.fees(([creationFee, transferFee]) => {\n *   console.log(`The fee for creating a new contract on this chain is ${creationFee} units. The fee required to call this contract is ${transferFee} units.`);\n * });\n * ```\n */\nexport function fees(instanceId, api) {\n    return memo(instanceId, () => {\n        return queryConstants(api).pipe(map(([callBaseFee, contractFee, creationFee, transactionBaseFee, transactionByteFee, transferFee, rentByteFee, rentDepositOffset, surchargeReward, tombstoneDeposit]) => ({\n            callBaseFee,\n            contractFee,\n            creationFee,\n            rentByteFee,\n            rentDepositOffset,\n            surchargeReward,\n            tombstoneDeposit,\n            transactionBaseFee,\n            transactionByteFee,\n            transferFee\n        })));\n    });\n}\n","import { combineLatest, map, of } from 'rxjs';\nimport { memo } from '../util/index.js';\nfunction isVoter(value) {\n    return !Array.isArray(value);\n}\nfunction retrieveStakeOf(elections) {\n    return elections['stakeOf'].entries().pipe(map((entries) => entries.map(([{ args: [accountId] }, stake]) => [accountId, stake])));\n}\nfunction retrieveVoteOf(elections) {\n    return elections['votesOf'].entries().pipe(map((entries) => entries.map(([{ args: [accountId] }, votes]) => [accountId, votes])));\n}\nfunction retrievePrev(api, elections) {\n    return combineLatest([\n        retrieveStakeOf(elections),\n        retrieveVoteOf(elections)\n    ]).pipe(map(([stakes, votes]) => {\n        const result = [];\n        votes.forEach(([voter, votes]) => {\n            result.push([voter, { stake: api.registry.createType('Balance'), votes }]);\n        });\n        stakes.forEach(([staker, stake]) => {\n            const entry = result.find(([voter]) => voter.eq(staker));\n            if (entry) {\n                entry[1].stake = stake;\n            }\n            else {\n                result.push([staker, { stake, votes: [] }]);\n            }\n        });\n        return result;\n    }));\n}\nfunction retrieveCurrent(elections) {\n    return elections.voting.entries().pipe(map((entries) => entries.map(([{ args: [accountId] }, value]) => [\n        accountId,\n        isVoter(value)\n            ? { stake: value.stake, votes: value.votes }\n            : { stake: value[0], votes: value[1] }\n    ])));\n}\nexport function votes(instanceId, api) {\n    const elections = api.query.elections || api.query['phragmenElection'] || api.query['electionsPhragmen'];\n    return memo(instanceId, () => elections\n        ? elections['stakeOf']\n            ? retrievePrev(api, elections)\n            : retrieveCurrent(elections)\n        : of([]));\n}\n","import { map } from 'rxjs';\nimport { memo } from '../util/index.js';\nexport function votesOf(instanceId, api) {\n    return memo(instanceId, (accountId) => api.derive.council.votes().pipe(map((votes) => (votes.find(([from]) => from.eq(accountId)) ||\n        [null, { stake: api.registry.createType('Balance'), votes: [] }])[1])));\n}\n","import { hasProposals as collectiveHasProposals, members as collectiveMembers, prime as collectivePrime, proposal as collectiveProposal, proposalCount as collectiveProposalCount, proposalHashes as collectiveProposalHashes, proposals as collectiveProposals } from '../collective/index.js';\nexport * from './votes.js';\nexport * from './votesOf.js';\nexport const members = /*#__PURE__*/ collectiveMembers('council');\nexport const hasProposals = /*#__PURE__*/ collectiveHasProposals('council');\nexport const proposal = /*#__PURE__*/ collectiveProposal('council');\nexport const proposalCount = /*#__PURE__*/ collectiveProposalCount('council');\nexport const proposalHashes = /*#__PURE__*/ collectiveProposalHashes('council');\nexport const proposals = /*#__PURE__*/ collectiveProposals('council');\nexport const prime = /*#__PURE__*/ collectivePrime('council');\n","import { map } from 'rxjs';\nimport { u8aConcat, u8aToHex } from '@polkadot/util';\nimport { blake2AsU8a } from '@polkadot/util-crypto';\nimport { memo } from '../util/index.js';\nfunction createChildKey(info) {\n    return u8aToHex(u8aConcat(':child_storage:default:', blake2AsU8a(u8aConcat('crowdloan', (info.fundIndex || info.trieIndex).toU8a()))));\n}\nexport function childKey(instanceId, api) {\n    return memo(instanceId, (paraId) => api.query['crowdloan']['funds'](paraId).pipe(map((optInfo) => optInfo.isSome\n        ? createChildKey(optInfo.unwrap())\n        : null)));\n}\n","import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * <span class=\"informal\">Just emits 'complete', and nothing else.</span>\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n *   next: () => console.log('Next'),\n *   complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n *   mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable<never>((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n  return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n  return new Observable<never>((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n","/**\n * @name arrayFlatten\n * @summary Merge T[][] into T[]\n * @description\n * Returns a new array with all arrays merged into one\n * @example\n * <BR>\n *\n * ```javascript\n * import { arrayFlatten } from '@polkadot/util';\n *\n * arrayFlatten([[1, 2], [3, 4], [5]]); // [1, 2, 3, 4, 5]\n * ```\n */\nexport function arrayFlatten(arrays) {\n    const num = arrays.length;\n    // shortcuts for the empty & single-entry case\n    if (num === 0) {\n        return [];\n    }\n    else if (num === 1) {\n        return arrays[0];\n    }\n    // pre-allocate based on the combined size\n    let size = 0;\n    for (let i = 0; i < num; i++) {\n        size += arrays[i].length;\n    }\n    const output = new Array(size);\n    let i = -1;\n    for (let j = 0; j < num; j++) {\n        const a = arrays[j];\n        // instead of pushing, we just set the entries\n        for (let e = 0, count = a.length; e < count; e++) {\n            output[++i] = a[e];\n        }\n    }\n    return output;\n}\n","export function extractContributed(paraId, events) {\n    const added = [];\n    const removed = [];\n    return events\n        .filter(({ event: { data: [, eventParaId], method, section } }) => section === 'crowdloan' &&\n        ['Contributed', 'Withdrew'].includes(method) &&\n        eventParaId.eq(paraId))\n        .reduce((result, { event: { data: [accountId], method } }) => {\n        if (method === 'Contributed') {\n            result.added.push(accountId.toHex());\n        }\n        else {\n            result.removed.push(accountId.toHex());\n        }\n        return result;\n    }, { added, blockHash: events.createdAtHash?.toHex() || '-', removed });\n}\n","import { BehaviorSubject, combineLatest, EMPTY, map, of, startWith, switchMap, tap, toArray } from 'rxjs';\nimport { arrayFlatten, isFunction, nextTick } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nimport { extractContributed } from './util.js';\nconst PAGE_SIZE_K = 1000; // limit aligned with the 1k on the node (trie lookups are heavy)\nfunction _getUpdates(api, paraId) {\n    let added = [];\n    let removed = [];\n    return api.query.system.events().pipe(switchMap((events) => {\n        const changes = extractContributed(paraId, events);\n        if (changes.added.length || changes.removed.length) {\n            added = added.concat(...changes.added);\n            removed = removed.concat(...changes.removed);\n            return of({ added, addedDelta: changes.added, blockHash: events.createdAtHash?.toHex() || '-', removed, removedDelta: changes.removed });\n        }\n        return EMPTY;\n    }), startWith({ added, addedDelta: [], blockHash: '-', removed, removedDelta: [] }));\n}\nfunction _eventTriggerAll(api, paraId) {\n    return api.query.system.events().pipe(switchMap((events) => {\n        const items = events.filter(({ event: { data: [eventParaId], method, section } }) => section === 'crowdloan' &&\n            ['AllRefunded', 'Dissolved', 'PartiallyRefunded'].includes(method) &&\n            eventParaId.eq(paraId));\n        return items.length\n            ? of(events.createdAtHash?.toHex() || '-')\n            : EMPTY;\n    }), startWith('-'));\n}\nfunction _getKeysPaged(api, childKey) {\n    const subject = new BehaviorSubject(undefined);\n    return subject.pipe(switchMap((startKey) => api.rpc.childstate.getKeysPaged(childKey, '0x', PAGE_SIZE_K, startKey)), tap((keys) => {\n        nextTick(() => {\n            keys.length === PAGE_SIZE_K\n                ? subject.next(keys[PAGE_SIZE_K - 1].toHex())\n                : subject.complete();\n        });\n    }), toArray(), // toArray since we want to startSubject to be completed\n    map((keyArr) => arrayFlatten(keyArr)));\n}\nfunction _getAll(api, paraId, childKey) {\n    return _eventTriggerAll(api, paraId).pipe(switchMap(() => isFunction(api.rpc.childstate.getKeysPaged)\n        ? _getKeysPaged(api, childKey)\n        : api.rpc.childstate.getKeys(childKey, '0x')), map((keys) => keys.map((k) => k.toHex())));\n}\nfunction _contributions(api, paraId, childKey) {\n    return combineLatest([\n        _getAll(api, paraId, childKey),\n        _getUpdates(api, paraId)\n    ]).pipe(map(([keys, { added, blockHash, removed }]) => {\n        const contributorsMap = {};\n        keys.forEach((k) => {\n            contributorsMap[k] = true;\n        });\n        added.forEach((k) => {\n            contributorsMap[k] = true;\n        });\n        removed.forEach((k) => {\n            delete contributorsMap[k];\n        });\n        return {\n            blockHash,\n            contributorsHex: Object.keys(contributorsMap)\n        };\n    }));\n}\nexport function contributions(instanceId, api) {\n    return memo(instanceId, (paraId) => api.derive.crowdloan.childKey(paraId).pipe(switchMap((childKey) => childKey\n        ? _contributions(api, paraId, childKey)\n        : of({ blockHash: '-', contributorsHex: [] }))));\n}\n","import { combineLatest, EMPTY, map, of, startWith, switchMap } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nimport { extractContributed } from './util.js';\nfunction _getValues(api, childKey, keys) {\n    // We actually would love to use multi-keys https://github.com/paritytech/substrate/issues/9203\n    return combineLatest(keys.map((k) => api.rpc.childstate.getStorage(childKey, k))).pipe(map((values) => values\n        .map((v) => api.registry.createType('Option<StorageData>', v))\n        .map((o) => o.isSome\n        ? api.registry.createType('Balance', o.unwrap())\n        : api.registry.createType('Balance'))\n        .reduce((all, b, index) => objectSpread(all, { [keys[index]]: b }), {})));\n}\nfunction _watchOwnChanges(api, paraId, childkey, keys) {\n    return api.query.system.events().pipe(switchMap((events) => {\n        const changes = extractContributed(paraId, events);\n        const filtered = keys.filter((k) => changes.added.includes(k) ||\n            changes.removed.includes(k));\n        return filtered.length\n            ? _getValues(api, childkey, filtered)\n            : EMPTY;\n    }), startWith({}));\n}\nfunction _contributions(api, paraId, childKey, keys) {\n    return combineLatest([\n        _getValues(api, childKey, keys),\n        _watchOwnChanges(api, paraId, childKey, keys)\n    ]).pipe(map(([all, latest]) => objectSpread({}, all, latest)));\n}\nexport function ownContributions(instanceId, api) {\n    return memo(instanceId, (paraId, keys) => api.derive.crowdloan.childKey(paraId).pipe(switchMap((childKey) => childKey && keys.length\n        ? _contributions(api, paraId, childKey, keys)\n        : of({}))));\n}\n","import { u8aToHex } from '../u8a/toHex.js';\nimport { stringToU8a } from './toU8a.js';\n/**\n * @name stringToHex\n * @summary Creates a hex string from a utf-8 string\n * @description\n * String input values return the actual encoded hex value.\n * @example\n * <BR>\n *\n * ```javascript\n * import { stringToHex } from '@polkadot/util';\n *\n * stringToU8a('hello'); // 0x68656c6c6f\n * ```\n */\nexport function stringToHex(value) {\n    return u8aToHex(stringToU8a(value));\n}\n","import { BN } from './bn.js';\nimport { BN_MAX_INTEGER, BN_ONE, BN_SQRT_MAX_INTEGER } from './consts.js';\nimport { bnToBn } from './toBn.js';\n/**\n * @name bnSqrt\n * @summary Calculates the integer square root of a BN\n * @example\n * <BR>\n *\n * ```javascript\n * import BN from 'bn.js';\n * import { bnSqrt } from '@polkadot/util';\n *\n * bnSqrt(new BN(16)).toString(); // => '4'\n * ```\n */\nexport function bnSqrt(value) {\n    const n = bnToBn(value);\n    if (n.isNeg()) {\n        throw new Error('square root of negative numbers is not supported');\n    }\n    // https://stackoverflow.com/questions/53683995/javascript-big-integer-square-root/\n    // shortcut <= 2^53 - 1 to use the JS utils\n    if (n.lte(BN_MAX_INTEGER)) {\n        // ~~ More performant version of Math.floor\n        return new BN(~~Math.sqrt(n.toNumber()));\n    }\n    // Use sqrt(MAX_SAFE_INTEGER) as starting point. since we already know the\n    // output will be larger than this, we expect this to be a safe start\n    let x0 = BN_SQRT_MAX_INTEGER.clone();\n    while (true) {\n        const x1 = n.div(x0).iadd(x0).ishrn(1);\n        if (x0.eq(x1) || x0.eq(x1.sub(BN_ONE))) {\n            return x0;\n        }\n        x0 = x1;\n    }\n}\n","import { BN, bnSqrt, isHex, isString, isU8a, objectSpread, stringToHex, u8aToHex } from '@polkadot/util';\nfunction isOldInfo(info) {\n    return !!info.proposalHash;\n}\nfunction isCurrentStatus(status) {\n    return !!status.tally;\n}\nexport function compareRationals(n1, d1, n2, d2) {\n    while (true) {\n        const q1 = n1.div(d1);\n        const q2 = n2.div(d2);\n        if (q1.lt(q2)) {\n            return true;\n        }\n        else if (q2.lt(q1)) {\n            return false;\n        }\n        const r1 = n1.mod(d1);\n        const r2 = n2.mod(d2);\n        if (r2.isZero()) {\n            return false;\n        }\n        else if (r1.isZero()) {\n            return true;\n        }\n        n1 = d2;\n        n2 = d1;\n        d1 = r2;\n        d2 = r1;\n    }\n}\nfunction calcPassingOther(threshold, sqrtElectorate, { votedAye, votedNay, votedTotal }) {\n    const sqrtVoters = bnSqrt(votedTotal);\n    return sqrtVoters.isZero()\n        ? false\n        : threshold.isSuperMajorityApprove\n            ? compareRationals(votedNay, sqrtVoters, votedAye, sqrtElectorate)\n            : compareRationals(votedNay, sqrtElectorate, votedAye, sqrtVoters);\n}\nexport function calcPassing(threshold, sqrtElectorate, state) {\n    return threshold.isSimpleMajority\n        ? state.votedAye.gt(state.votedNay)\n        : calcPassingOther(threshold, sqrtElectorate, state);\n}\nfunction calcVotesPrev(votesFor) {\n    return votesFor.reduce((state, derived) => {\n        const { balance, vote } = derived;\n        const isDefault = vote.conviction.index === 0;\n        const counted = balance\n            .muln(isDefault ? 1 : vote.conviction.index)\n            .divn(isDefault ? 10 : 1);\n        if (vote.isAye) {\n            state.allAye.push(derived);\n            state.voteCountAye++;\n            state.votedAye.iadd(counted);\n        }\n        else {\n            state.allNay.push(derived);\n            state.voteCountNay++;\n            state.votedNay.iadd(counted);\n        }\n        state.voteCount++;\n        state.votedTotal.iadd(counted);\n        return state;\n    }, { allAye: [], allNay: [], voteCount: 0, voteCountAye: 0, voteCountNay: 0, votedAye: new BN(0), votedNay: new BN(0), votedTotal: new BN(0) });\n}\nfunction calcVotesCurrent(tally, votes) {\n    const allAye = [];\n    const allNay = [];\n    votes.forEach((derived) => {\n        if (derived.vote.isAye) {\n            allAye.push(derived);\n        }\n        else {\n            allNay.push(derived);\n        }\n    });\n    return {\n        allAye,\n        allNay,\n        voteCount: allAye.length + allNay.length,\n        voteCountAye: allAye.length,\n        voteCountNay: allNay.length,\n        votedAye: tally.ayes,\n        votedNay: tally.nays,\n        votedTotal: tally.turnout\n    };\n}\nexport function calcVotes(sqrtElectorate, referendum, votes) {\n    const state = isCurrentStatus(referendum.status)\n        ? calcVotesCurrent(referendum.status.tally, votes)\n        : calcVotesPrev(votes);\n    return objectSpread({}, state, {\n        isPassing: calcPassing(referendum.status.threshold, sqrtElectorate, state),\n        votes\n    });\n}\nexport function getStatus(info) {\n    if (info.isNone) {\n        return null;\n    }\n    const unwrapped = info.unwrap();\n    return isOldInfo(unwrapped)\n        ? unwrapped\n        : unwrapped.isOngoing\n            ? unwrapped.asOngoing\n            // done, we don't include it here... only currently active\n            : null;\n}\nexport function getImageHashBounded(hash) {\n    return hash.isLegacy\n        ? hash.asLegacy.hash_.toHex()\n        : hash.isLookup\n            ? hash.asLookup.hash_.toHex()\n            // for inline, use the actual Bytes hash\n            : hash.isInline\n                ? hash.asInline.hash.toHex()\n                : isString(hash)\n                    ? isHex(hash)\n                        ? hash\n                        : stringToHex(hash)\n                    : isU8a(hash)\n                        ? u8aToHex(hash)\n                        : hash.toHex();\n}\nexport function getImageHash(status) {\n    return getImageHashBounded(status.proposal ||\n        status.proposalHash);\n}\n","import { catchError, combineLatest, map, of, switchMap } from 'rxjs';\nimport { Enum } from '@polkadot/types';\nimport { isFunction, objectSpread, stringToHex } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nimport { getImageHashBounded } from './util.js';\nconst DEMOCRACY_ID = stringToHex('democrac');\nfunction isMaybeHashedOrBounded(call) {\n    // check for enum\n    return call instanceof Enum;\n}\nfunction isBounded(call) {\n    // check for type\n    return call.isInline || call.isLegacy || call.isLookup;\n}\nfunction queryQueue(api) {\n    return api.query.democracy['dispatchQueue']().pipe(switchMap((dispatches) => combineLatest([\n        of(dispatches),\n        api.derive.democracy.preimages(dispatches.map(([, hash]) => hash))\n    ])), map(([dispatches, images]) => dispatches.map(([at, imageHash, index], dispatchIndex) => ({\n        at,\n        image: images[dispatchIndex],\n        imageHash: getImageHashBounded(imageHash),\n        index\n    }))));\n}\nfunction schedulerEntries(api) {\n    // We don't get entries, but rather we get the keys (triggered via finished referendums) and\n    // the subscribe to those keys - this means we pickup when the schedulers actually executes\n    // at a block, the entry for that block will become empty\n    return api.derive.democracy.referendumsFinished().pipe(switchMap(() => api.query.scheduler.agenda.keys()), switchMap((keys) => {\n        const blockNumbers = keys.map(({ args: [blockNumber] }) => blockNumber);\n        return blockNumbers.length\n            ? combineLatest([\n                of(blockNumbers),\n                // this should simply be api.query.scheduler.agenda.multi,\n                // however we have had cases on Darwinia where the indices have moved around after an\n                // upgrade, which results in invalid on-chain data\n                api.query.scheduler.agenda.multi(blockNumbers).pipe(catchError(() => of(blockNumbers.map(() => []))))\n            ])\n            : of([[], []]);\n    }));\n}\nfunction queryScheduler(api) {\n    return schedulerEntries(api).pipe(switchMap(([blockNumbers, agendas]) => {\n        const result = [];\n        blockNumbers.forEach((at, index) => {\n            (agendas[index] || []).filter((o) => o.isSome).forEach((o) => {\n                const scheduled = o.unwrap();\n                if (scheduled.maybeId.isSome) {\n                    const id = scheduled.maybeId.unwrap().toHex();\n                    if (id.startsWith(DEMOCRACY_ID)) {\n                        const imageHash = isMaybeHashedOrBounded(scheduled.call)\n                            ? isBounded(scheduled.call)\n                                ? getImageHashBounded(scheduled.call)\n                                : scheduled.call.isHash\n                                    ? scheduled.call.asHash.toHex()\n                                    : scheduled.call.asValue.args[0].toHex()\n                            : scheduled.call.args[0].toHex();\n                        result.push({ at, imageHash, index: api.registry.createType('(u64, ReferendumIndex)', id)[1] });\n                    }\n                }\n            });\n        });\n        return combineLatest([\n            of(result),\n            result.length\n                ? api.derive.democracy.preimages(result.map(({ imageHash }) => imageHash))\n                : of([])\n        ]);\n    }), map(([infos, images]) => infos.map((info, index) => objectSpread({ image: images[index] }, info))));\n}\nexport function dispatchQueue(instanceId, api) {\n    return memo(instanceId, () => isFunction(api.query.scheduler?.agenda)\n        ? queryScheduler(api)\n        : api.query.democracy['dispatchQueue']\n            ? queryQueue(api)\n            : of([]));\n}\n","import { map, of, switchMap } from 'rxjs';\nimport { BN_ZERO, isUndefined } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nconst LOCKUPS = [0, 1, 2, 4, 8, 16, 32];\nfunction parseEnd(api, vote, { approved, end }) {\n    return [\n        end,\n        (approved.isTrue && vote.isAye) || (approved.isFalse && vote.isNay)\n            ? end.add((api.consts.democracy.voteLockingPeriod ||\n                api.consts.democracy.enactmentPeriod).muln(LOCKUPS[vote.conviction.index]))\n            : BN_ZERO\n    ];\n}\nfunction parseLock(api, [referendumId, accountVote], referendum) {\n    const { balance, vote } = accountVote.asStandard;\n    const [referendumEnd, unlockAt] = referendum.isFinished\n        ? parseEnd(api, vote, referendum.asFinished)\n        : [BN_ZERO, BN_ZERO];\n    return { balance, isDelegated: false, isFinished: referendum.isFinished, referendumEnd, referendumId, unlockAt, vote };\n}\nfunction delegateLocks(api, { balance, conviction, target }) {\n    return api.derive.democracy.locks(target).pipe(map((available) => available.map(({ isFinished, referendumEnd, referendumId, unlockAt, vote }) => ({\n        balance,\n        isDelegated: true,\n        isFinished,\n        referendumEnd,\n        referendumId,\n        unlockAt: unlockAt.isZero()\n            ? unlockAt\n            : referendumEnd.add((api.consts.democracy.voteLockingPeriod ||\n                api.consts.democracy.enactmentPeriod).muln(LOCKUPS[conviction.index])),\n        vote: api.registry.createType('Vote', { aye: vote.isAye, conviction })\n    }))));\n}\nfunction directLocks(api, { votes }) {\n    if (!votes.length) {\n        return of([]);\n    }\n    return api.query.democracy.referendumInfoOf.multi(votes.map(([referendumId]) => referendumId)).pipe(map((referendums) => votes\n        .map((vote, index) => [vote, referendums[index].unwrapOr(null)])\n        .filter((item) => !!item[1] && isUndefined(item[1].end) && item[0][1].isStandard)\n        .map(([directVote, referendum]) => parseLock(api, directVote, referendum))));\n}\nexport function locks(instanceId, api) {\n    return memo(instanceId, (accountId) => api.query.democracy.votingOf\n        ? api.query.democracy.votingOf(accountId).pipe(switchMap((voting) => voting.isDirect\n            ? directLocks(api, voting.asDirect)\n            : voting.isDelegating\n                ? delegateLocks(api, voting.asDelegating)\n                : of([])))\n        : of([]));\n}\n","import { map, of, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nimport { getImageHashBounded } from './util.js';\nfunction withImage(api, nextOpt) {\n    if (nextOpt.isNone) {\n        return of(null);\n    }\n    const [hash, threshold] = nextOpt.unwrap();\n    return api.derive.democracy.preimage(hash).pipe(map((image) => ({\n        image,\n        imageHash: getImageHashBounded(hash),\n        threshold\n    })));\n}\nexport function nextExternal(instanceId, api) {\n    return memo(instanceId, () => api.query.democracy?.nextExternal\n        ? api.query.democracy.nextExternal().pipe(switchMap((nextOpt) => withImage(api, nextOpt)))\n        : of(null));\n}\n","import { map, of, switchMap } from 'rxjs';\nimport { BN_ZERO, isFunction } from '@polkadot/util';\nimport { firstMemo, memo } from '../util/index.js';\nimport { getImageHashBounded } from './util.js';\nfunction isDemocracyPreimage(api, imageOpt) {\n    return !!imageOpt && !api.query.democracy['dispatchQueue'];\n}\nfunction constructProposal(api, [bytes, proposer, balance, at]) {\n    let proposal;\n    try {\n        proposal = api.registry.createType('Call', bytes.toU8a(true));\n    }\n    catch (error) {\n        console.error(error);\n    }\n    return { at, balance, proposal, proposer };\n}\nfunction parseDemocracy(api, imageOpt) {\n    if (imageOpt.isNone) {\n        return;\n    }\n    if (isDemocracyPreimage(api, imageOpt)) {\n        const status = imageOpt.unwrap();\n        if (status.isMissing) {\n            return;\n        }\n        const { data, deposit, provider, since } = status.asAvailable;\n        return constructProposal(api, [data, provider, deposit, since]);\n    }\n    return constructProposal(api, imageOpt.unwrap());\n}\nfunction parseImage(api, [proposalHash, status, bytes]) {\n    if (!status) {\n        return undefined;\n    }\n    const [proposer, balance] = status.isUnrequested\n        ? status.asUnrequested.deposit\n        : status.asRequested.deposit.unwrapOrDefault();\n    let proposal;\n    if (bytes) {\n        try {\n            proposal = api.registry.createType('Call', bytes.toU8a(true));\n        }\n        catch (error) {\n            console.error(error);\n        }\n    }\n    return { at: BN_ZERO, balance, proposal, proposalHash, proposer };\n}\nfunction getDemocracyImages(api, bounded) {\n    const hashes = bounded.map((b) => getImageHashBounded(b));\n    return api.query.democracy['preimages'].multi(hashes).pipe(map((images) => images.map((imageOpt) => parseDemocracy(api, imageOpt))));\n}\nfunction getImages(api, bounded) {\n    const hashes = bounded.map((b) => getImageHashBounded(b));\n    const bytesType = api.registry.lookup.getTypeDef(api.query.preimage.preimageFor.creator.meta.type.asMap.key).type;\n    return api.query.preimage.statusFor.multi(hashes).pipe(switchMap((optStatus) => {\n        const statuses = optStatus.map((o) => o.unwrapOr(null));\n        const keys = statuses\n            .map((s, i) => s\n            ? bytesType === 'H256'\n                // first generation\n                ? hashes[i]\n                // current generation (H256,u32)\n                : s.isRequested\n                    ? [hashes[i], s.asRequested.len.unwrapOr(0)]\n                    : [hashes[i], s.asUnrequested.len]\n            : null)\n            .filter((p) => !!p);\n        return api.query.preimage.preimageFor.multi(keys).pipe(map((optBytes) => {\n            let ptr = -1;\n            return statuses\n                .map((s, i) => s\n                ? [hashes[i], s, optBytes[++ptr].unwrapOr(null)]\n                : [hashes[i], null, null])\n                .map((v) => parseImage(api, v));\n        }));\n    }));\n}\nexport function preimages(instanceId, api) {\n    return memo(instanceId, (hashes) => hashes.length\n        ? isFunction(api.query.democracy['preimages'])\n            ? getDemocracyImages(api, hashes)\n            : isFunction(api.query.preimage.preimageFor)\n                ? getImages(api, hashes)\n                : of([])\n        : of([]));\n}\nexport const preimage = /*#__PURE__*/ firstMemo((api, hash) => api.derive.democracy.preimages([hash]));\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { isFunction, objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nimport { getImageHashBounded } from './util.js';\nfunction isNewDepositors(depositors) {\n    // Detect balance...\n    return isFunction(depositors[1].mul);\n}\nfunction parse([proposals, images, optDepositors]) {\n    return proposals\n        .filter(([, , proposer], index) => !!(optDepositors[index]?.isSome) && !proposer.isEmpty)\n        .map(([index, hash, proposer], proposalIndex) => {\n        const depositors = optDepositors[proposalIndex].unwrap();\n        return objectSpread({\n            image: images[proposalIndex],\n            imageHash: getImageHashBounded(hash),\n            index,\n            proposer\n        }, isNewDepositors(depositors)\n            ? { balance: depositors[1], seconds: depositors[0] }\n            : { balance: depositors[0], seconds: depositors[1] });\n    });\n}\nexport function proposals(instanceId, api) {\n    return memo(instanceId, () => isFunction(api.query.democracy?.publicProps)\n        ? api.query.democracy.publicProps().pipe(switchMap((proposals) => proposals.length\n            ? combineLatest([\n                of(proposals),\n                api.derive.democracy.preimages(proposals.map(([, hash]) => hash)),\n                api.query.democracy.depositOf.multi(proposals.map(([index]) => index))\n            ])\n            : of([[], [], []])), map(parse))\n        : of([]));\n}\n","import { map, of } from 'rxjs';\nimport { memo } from '../util/index.js';\nexport function referendumIds(instanceId, api) {\n    return memo(instanceId, () => api.query.democracy?.lowestUnbaked\n        ? api.queryMulti([\n            api.query.democracy.lowestUnbaked,\n            api.query.democracy.referendumCount\n        ]).pipe(map(([first, total]) => total.gt(first)\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n            ? [...Array(total.sub(first).toNumber())].map((_, i) => first.addn(i))\n            : []))\n        : of([]));\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nexport function referendums(instanceId, api) {\n    return memo(instanceId, () => api.derive.democracy.referendumsActive().pipe(switchMap((referendums) => referendums.length\n        ? combineLatest([\n            of(referendums),\n            api.derive.democracy._referendumsVotes(referendums)\n        ])\n        : of([[], []])), map(([referendums, votes]) => referendums.map((referendum, index) => objectSpread({}, referendum, votes[index])))));\n}\n","import { of, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nexport function referendumsActive(instanceId, api) {\n    return memo(instanceId, () => api.derive.democracy.referendumIds().pipe(switchMap((ids) => ids.length\n        ? api.derive.democracy.referendumsInfo(ids)\n        : of([]))));\n}\n","import { map, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nexport function referendumsFinished(instanceId, api) {\n    return memo(instanceId, () => api.derive.democracy.referendumIds().pipe(switchMap((ids) => api.query.democracy.referendumInfoOf.multi(ids)), map((infos) => infos\n        .map((o) => o.unwrapOr(null))\n        .filter((info) => !!info && info.isFinished)\n        .map((info) => info.asFinished))));\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { isFunction, objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nimport { calcVotes, getImageHash, getStatus } from './util.js';\nfunction votesPrev(api, referendumId) {\n    return api.query.democracy['votersFor'](referendumId).pipe(switchMap((votersFor) => combineLatest([\n        of(votersFor),\n        votersFor.length\n            ? api.query.democracy['voteOf'].multi(votersFor.map((accountId) => [referendumId, accountId]))\n            : of([]),\n        api.derive.balances.votingBalances(votersFor)\n    ])), map(([votersFor, votes, balances]) => votersFor.map((accountId, index) => ({\n        accountId,\n        balance: balances[index].votingBalance || api.registry.createType('Balance'),\n        isDelegating: false,\n        vote: votes[index] || api.registry.createType('Vote')\n    }))));\n}\nfunction extractVotes(mapped, referendumId) {\n    return mapped\n        .filter(([, voting]) => voting.isDirect)\n        .map(([accountId, voting]) => [\n        accountId,\n        voting.asDirect.votes.filter(([idx]) => idx.eq(referendumId))\n    ])\n        .filter(([, directVotes]) => !!directVotes.length)\n        .reduce((result, [accountId, votes]) => \n    // FIXME We are ignoring split votes\n    votes.reduce((result, [, vote]) => {\n        if (vote.isStandard) {\n            result.push(objectSpread({\n                accountId,\n                isDelegating: false\n            }, vote.asStandard));\n        }\n        return result;\n    }, result), []);\n}\nfunction votesCurr(api, referendumId) {\n    return api.query.democracy.votingOf.entries().pipe(map((allVoting) => {\n        const mapped = allVoting.map(([{ args: [accountId] }, voting]) => [accountId, voting]);\n        const votes = extractVotes(mapped, referendumId);\n        const delegations = mapped\n            .filter(([, voting]) => voting.isDelegating)\n            .map(([accountId, voting]) => [accountId, voting.asDelegating]);\n        // add delegations\n        delegations.forEach(([accountId, { balance, conviction, target }]) => {\n            // Are we delegating to a delegator\n            const toDelegator = delegations.find(([accountId]) => accountId.eq(target));\n            const to = votes.find(({ accountId }) => accountId.eq(toDelegator ? toDelegator[0] : target));\n            // this delegation has a target\n            if (to) {\n                votes.push({\n                    accountId,\n                    balance,\n                    isDelegating: true,\n                    vote: api.registry.createType('Vote', { aye: to.vote.isAye, conviction })\n                });\n            }\n        });\n        return votes;\n    }));\n}\nexport function _referendumVotes(instanceId, api) {\n    return memo(instanceId, (referendum) => combineLatest([\n        api.derive.democracy.sqrtElectorate(),\n        isFunction(api.query.democracy.votingOf)\n            ? votesCurr(api, referendum.index)\n            : votesPrev(api, referendum.index)\n    ]).pipe(map(([sqrtElectorate, votes]) => calcVotes(sqrtElectorate, referendum, votes))));\n}\nexport function _referendumsVotes(instanceId, api) {\n    return memo(instanceId, (referendums) => referendums.length\n        ? combineLatest(referendums.map((referendum) => api.derive.democracy._referendumVotes(referendum)))\n        : of([]));\n}\nexport function _referendumInfo(instanceId, api) {\n    return memo(instanceId, (index, info) => {\n        const status = getStatus(info);\n        return status\n            ? api.derive.democracy.preimage(status.proposal ||\n                status.proposalHash).pipe(map((image) => ({\n                image,\n                imageHash: getImageHash(status),\n                index: api.registry.createType('ReferendumIndex', index),\n                status\n            })))\n            : of(null);\n    });\n}\nexport function referendumsInfo(instanceId, api) {\n    return memo(instanceId, (ids) => ids.length\n        ? api.query.democracy.referendumInfoOf.multi(ids).pipe(switchMap((infos) => combineLatest(ids.map((id, index) => api.derive.democracy._referendumInfo(id, infos[index])))), map((infos) => infos.filter((r) => !!r)))\n        : of([]));\n}\n","import { map } from 'rxjs';\nimport { bnSqrt } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nexport function sqrtElectorate(instanceId, api) {\n    return memo(instanceId, () => api.query.balances.totalIssuance().pipe(map(bnSqrt)));\n}\n","import { combineLatest, map, of } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nfunction isSeatHolder(value) {\n    return !Array.isArray(value);\n}\nfunction isCandidateTuple(value) {\n    return Array.isArray(value);\n}\nfunction getAccountTuple(value) {\n    return isSeatHolder(value)\n        ? [value.who, value.stake]\n        : value;\n}\nfunction getCandidate(value) {\n    return isCandidateTuple(value)\n        ? value[0]\n        : value;\n}\nfunction sortAccounts([, balanceA], [, balanceB]) {\n    return balanceB.cmp(balanceA);\n}\nfunction getConstants(api, elections) {\n    return elections\n        ? {\n            candidacyBond: api.consts[elections].candidacyBond,\n            desiredRunnersUp: api.consts[elections].desiredRunnersUp,\n            desiredSeats: api.consts[elections].desiredMembers,\n            termDuration: api.consts[elections].termDuration,\n            votingBond: api.consts[elections]['votingBond'],\n            votingBondBase: api.consts[elections].votingBondBase,\n            votingBondFactor: api.consts[elections].votingBondFactor\n        }\n        : {};\n}\nfunction getModules(api) {\n    const [council] = api.registry.getModuleInstances(api.runtimeVersion.specName, 'council') || ['council'];\n    const elections = api.query['phragmenElection']\n        ? 'phragmenElection'\n        : api.query['electionsPhragmen']\n            ? 'electionsPhragmen'\n            : api.query.elections\n                ? 'elections'\n                : null;\n    return [council, elections];\n}\nfunction queryAll(api, council, elections) {\n    return api.queryMulti([\n        api.query[council].members,\n        api.query[elections].candidates,\n        api.query[elections].members,\n        api.query[elections].runnersUp\n    ]);\n}\nfunction queryCouncil(api, council) {\n    return combineLatest([\n        api.query[council].members(),\n        of([]),\n        of([]),\n        of([])\n    ]);\n}\n/**\n * @name info\n * @returns An object containing the combined results of the storage queries for\n * all relevant election module properties.\n * @example\n * <BR>\n *\n * ```javascript\n * api.derive.elections.info(({ members, candidates }) => {\n *   console.log(`There are currently ${members.length} council members and ${candidates.length} prospective council candidates.`);\n * });\n * ```\n */\nexport function info(instanceId, api) {\n    return memo(instanceId, () => {\n        const [council, elections] = getModules(api);\n        return (elections\n            ? queryAll(api, council, elections)\n            : queryCouncil(api, council)).pipe(map(([councilMembers, candidates, members, runnersUp]) => objectSpread({}, getConstants(api, elections), {\n            candidateCount: api.registry.createType('u32', candidates.length),\n            candidates: candidates.map(getCandidate),\n            members: members.length\n                ? members.map(getAccountTuple).sort(sortAccounts)\n                : councilMembers.map((a) => [a, api.registry.createType('Balance')]),\n            runnersUp: runnersUp.map(getAccountTuple).sort(sortAccounts)\n        })));\n    });\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { BN_ZERO } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nfunction mapResult([result, validators, heartbeats, numBlocks]) {\n    validators.forEach((validator, index) => {\n        const validatorId = validator.toString();\n        const blockCount = numBlocks[index];\n        const hasMessage = !heartbeats[index].isEmpty;\n        const prev = result[validatorId];\n        if (!prev || prev.hasMessage !== hasMessage || !prev.blockCount.eq(blockCount)) {\n            result[validatorId] = {\n                blockCount,\n                hasMessage,\n                isOnline: hasMessage || blockCount.gt(BN_ZERO)\n            };\n        }\n    });\n    return result;\n}\n/**\n * @description Return a boolean array indicating whether the passed accounts had received heartbeats in the current session\n */\nexport function receivedHeartbeats(instanceId, api) {\n    return memo(instanceId, () => api.query.imOnline?.receivedHeartbeats\n        ? api.derive.staking.overview().pipe(switchMap(({ currentIndex, validators }) => combineLatest([\n            of({}),\n            of(validators),\n            api.query.imOnline.receivedHeartbeats.multi(validators.map((_address, index) => [currentIndex, index])),\n            api.query.imOnline.authoredBlocks.multi(validators.map((address) => [currentIndex, address]))\n        ])), map(mapResult))\n        : of({}));\n}\n","import { hasProposals as collectiveHasProposals, members as collectiveMembers, prime as collectivePrime, proposal as collectiveProposal, proposalCount as collectiveProposalCount, proposalHashes as collectiveProposalHashes, proposals as collectiveProposals } from '../collective/index.js';\nexport const members = /*#__PURE__*/ collectiveMembers('membership');\nexport const hasProposals = /*#__PURE__*/ collectiveHasProposals('membership');\nexport const proposal = /*#__PURE__*/ collectiveProposal('membership');\nexport const proposalCount = /*#__PURE__*/ collectiveProposalCount('membership');\nexport const proposalHashes = /*#__PURE__*/ collectiveProposalHashes('membership');\nexport const proposals = /*#__PURE__*/ collectiveProposals('membership');\nexport const prime = /*#__PURE__*/ collectivePrime('membership');\n","export function didUpdateToBool(didUpdate, id) {\n    return didUpdate.isSome\n        ? didUpdate.unwrap().some((paraId) => paraId.eq(id))\n        : false;\n}\n","import { map, of } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nimport { didUpdateToBool } from './util.js';\nfunction parseActive(id, active) {\n    const found = active.find(([paraId]) => paraId === id);\n    if (found && found[1].isSome) {\n        const [collatorId, retriable] = found[1].unwrap();\n        return objectSpread({ collatorId }, retriable.isWithRetries\n            ? {\n                isRetriable: true,\n                retries: retriable.asWithRetries.toNumber()\n            }\n            : {\n                isRetriable: false,\n                retries: 0\n            });\n    }\n    return null;\n}\nfunction parseCollators(id, collatorQueue) {\n    return collatorQueue.map((queue) => {\n        const found = queue.find(([paraId]) => paraId === id);\n        return found ? found[1] : null;\n    });\n}\nfunction parse(id, [active, retryQueue, selectedThreads, didUpdate, info, pendingSwap, heads, relayDispatchQueue]) {\n    if (info.isNone) {\n        return null;\n    }\n    return {\n        active: parseActive(id, active),\n        didUpdate: didUpdateToBool(didUpdate, id),\n        heads,\n        id,\n        info: objectSpread({ id }, info.unwrap()),\n        pendingSwapId: pendingSwap.unwrapOr(null),\n        relayDispatchQueue,\n        retryCollators: parseCollators(id, retryQueue),\n        selectedCollators: parseCollators(id, selectedThreads)\n    };\n}\nexport function info(instanceId, api) {\n    return memo(instanceId, (id) => api.query['registrar'] && api.query['parachains']\n        ? api.queryMulti([\n            api.query['registrar']['active'],\n            api.query['registrar']['retryQueue'],\n            api.query['registrar']['selectedThreads'],\n            api.query['parachains']['didUpdate'],\n            [api.query['registrar']['paras'], id],\n            [api.query['registrar']['pendingSwap'], id],\n            [api.query['parachains']['heads'], id],\n            [api.query['parachains']['relayDispatchQueue'], id]\n        ])\n            .pipe(map((result) => parse(api.registry.createType('ParaId', id), result)))\n        : of(null));\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nimport { didUpdateToBool } from './util.js';\nfunction parse([ids, didUpdate, relayDispatchQueueSizes, infos, pendingSwaps]) {\n    return ids.map((id, index) => ({\n        didUpdate: didUpdateToBool(didUpdate, id),\n        id,\n        info: objectSpread({ id }, infos[index].unwrapOr(null)),\n        pendingSwapId: pendingSwaps[index].unwrapOr(null),\n        relayDispatchQueueSize: relayDispatchQueueSizes[index][0].toNumber()\n    }));\n}\nexport function overview(instanceId, api) {\n    return memo(instanceId, () => api.query['registrar']?.['parachains'] && api.query['parachains']\n        ? api.query['registrar']['parachains']().pipe(switchMap((paraIds) => combineLatest([\n            of(paraIds),\n            api.query['parachains']['didUpdate'](),\n            api.query['parachains']['relayDispatchQueueSize'].multi(paraIds),\n            api.query['registrar']['paras'].multi(paraIds),\n            api.query['registrar']['pendingSwap'].multi(paraIds)\n        ])), map(parse))\n        : of([]));\n}\n","import { map, of } from 'rxjs';\nimport { memo } from '../util/index.js';\nfunction parse([currentIndex, activeEra, activeEraStart, currentEra, validatorCount]) {\n    return {\n        activeEra,\n        activeEraStart,\n        currentEra,\n        currentIndex,\n        validatorCount\n    };\n}\nfunction queryStaking(api) {\n    return api.queryMulti([\n        api.query.session.currentIndex,\n        api.query.staking.activeEra,\n        api.query.staking.currentEra,\n        api.query.staking.validatorCount\n    ]).pipe(map(([currentIndex, activeOpt, currentEra, validatorCount]) => {\n        const { index, start } = activeOpt.unwrapOrDefault();\n        return parse([\n            currentIndex,\n            index,\n            start,\n            currentEra.unwrapOrDefault(),\n            validatorCount\n        ]);\n    }));\n}\nfunction querySession(api) {\n    return api.query.session.currentIndex().pipe(map((currentIndex) => parse([\n        currentIndex,\n        api.registry.createType('EraIndex'),\n        api.registry.createType('Option<Moment>'),\n        api.registry.createType('EraIndex'),\n        api.registry.createType('u32')\n    ])));\n}\nfunction empty(api) {\n    return of(parse([\n        api.registry.createType('SessionIndex', 1),\n        api.registry.createType('EraIndex'),\n        api.registry.createType('Option<Moment>'),\n        api.registry.createType('EraIndex'),\n        api.registry.createType('u32')\n    ]));\n}\nexport function indexes(instanceId, api) {\n    return memo(instanceId, () => api.query.session\n        ? api.query.staking\n            ? queryStaking(api)\n            : querySession(api)\n        : empty(api));\n}\n","import { map } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\n/**\n * @description Retrieves all the session and era query and calculates specific values on it as the length of the session and eras\n */\nexport function info(instanceId, api) {\n    return memo(instanceId, () => api.derive.session.indexes().pipe(map((indexes) => {\n        const sessionLength = api.consts?.babe?.epochDuration || api.registry.createType('u64', 1);\n        const sessionsPerEra = api.consts?.staking?.sessionsPerEra || api.registry.createType('SessionIndex', 1);\n        return objectSpread({\n            eraLength: api.registry.createType('BlockNumber', sessionsPerEra.mul(sessionLength)),\n            isEpoch: !!api.query.babe,\n            sessionLength,\n            sessionsPerEra\n        }, indexes);\n    })));\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nfunction withProgressField(field) {\n    return (instanceId, api) => memo(instanceId, () => api.derive.session.progress().pipe(map((info) => info[field])));\n}\nfunction createDerive(api, info, [currentSlot, epochIndex, epochOrGenesisStartSlot, activeEraStartSessionIndex]) {\n    const epochStartSlot = epochIndex.mul(info.sessionLength).iadd(epochOrGenesisStartSlot);\n    const sessionProgress = currentSlot.sub(epochStartSlot);\n    const eraProgress = info.currentIndex.sub(activeEraStartSessionIndex).imul(info.sessionLength).iadd(sessionProgress);\n    return objectSpread({\n        eraProgress: api.registry.createType('BlockNumber', eraProgress),\n        sessionProgress: api.registry.createType('BlockNumber', sessionProgress)\n    }, info);\n}\nfunction queryAura(api) {\n    return api.derive.session.info().pipe(map((info) => objectSpread({\n        eraProgress: api.registry.createType('BlockNumber'),\n        sessionProgress: api.registry.createType('BlockNumber')\n    }, info)));\n}\nfunction queryBabe(api) {\n    return api.derive.session.info().pipe(switchMap((info) => combineLatest([\n        of(info),\n        // we may have no staking, but have babe (permissioned)\n        api.query.staking?.erasStartSessionIndex\n            ? api.queryMulti([\n                api.query.babe.currentSlot,\n                api.query.babe.epochIndex,\n                api.query.babe.genesisSlot,\n                [api.query.staking.erasStartSessionIndex, info.activeEra]\n            ])\n            : api.queryMulti([\n                api.query.babe.currentSlot,\n                api.query.babe.epochIndex,\n                api.query.babe.genesisSlot\n            ])\n    ])), map(([info, [currentSlot, epochIndex, genesisSlot, optStartIndex]]) => [\n        info, [currentSlot, epochIndex, genesisSlot, optStartIndex && optStartIndex.isSome ? optStartIndex.unwrap() : api.registry.createType('SessionIndex', 1)]\n    ]));\n}\n/**\n * @description Retrieves all the session and era query and calculates specific values on it as the length of the session and eras\n */\nexport function progress(instanceId, api) {\n    return memo(instanceId, () => api.query.babe\n        ? queryBabe(api).pipe(map(([info, slots]) => createDerive(api, info, slots)))\n        : queryAura(api));\n}\nexport const eraLength = /*#__PURE__*/ withProgressField('eraLength');\nexport const eraProgress = /*#__PURE__*/ withProgressField('eraProgress');\nexport const sessionProgress = /*#__PURE__*/ withProgressField('sessionProgress');\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nfunction getPrev(api) {\n    return api.query.society.candidates().pipe(switchMap((candidates) => combineLatest([\n        of(candidates),\n        api.query.society['suspendedCandidates'].multi(candidates.map(({ who }) => who))\n    ])), map(([candidates, suspended]) => candidates.map(({ kind, value, who }, index) => ({\n        accountId: who,\n        isSuspended: suspended[index].isSome,\n        kind,\n        value\n    }))));\n}\nfunction getCurr(api) {\n    return api.query.society.candidates.entries().pipe(map((entries) => entries\n        .filter(([, opt]) => opt.isSome)\n        .map(([{ args: [accountId] }, opt]) => [accountId, opt.unwrap()])\n        // FIXME We are missing the new fields from the candidate record\n        .map(([accountId, { bid, kind }]) => ({\n        accountId,\n        isSuspended: false,\n        kind,\n        value: bid\n    }))));\n}\n/**\n * @description Get the candidate info for a society\n */\nexport function candidates(instanceId, api) {\n    return memo(instanceId, () => api.query.society['suspendedCandidates'] && api.query.society.candidates.creator.meta.type.isPlain\n        ? getPrev(api)\n        : getCurr(api));\n}\n","import { combineLatest, map, of } from 'rxjs';\nimport { memo } from '../util/index.js';\n/**\n * @description Get the overall info for a society\n */\nexport function info(instanceId, api) {\n    return memo(instanceId, () => combineLatest([\n        api.query.society.bids(),\n        api.query.society['defender']\n            ? api.query.society['defender']()\n            : of(undefined),\n        api.query.society.founder(),\n        api.query.society.head(),\n        api.query.society['maxMembers']\n            ? api.query.society['maxMembers']()\n            : of(undefined),\n        api.query.society.pot()\n    ]).pipe(map(([bids, defender, founder, head, maxMembers, pot]) => ({\n        bids,\n        defender: defender?.unwrapOr(undefined),\n        founder: founder.unwrapOr(undefined),\n        hasDefender: (defender?.isSome && head.isSome && !head.eq(defender)) || false,\n        head: head.unwrapOr(undefined),\n        maxMembers,\n        pot\n    }))));\n}\n","import { map } from 'rxjs';\nimport { memo } from '../util/index.js';\n/**\n * @description Get the member info for a society\n */\nexport function member(instanceId, api) {\n    return memo(instanceId, (accountId) => api.derive.society._members([accountId]).pipe(map(([result]) => result)));\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nfunction _membersPrev(api, accountIds) {\n    return combineLatest([\n        of(accountIds),\n        api.query.society.payouts.multi(accountIds),\n        api.query.society['strikes'].multi(accountIds),\n        api.query.society.defenderVotes.multi(accountIds),\n        api.query.society.suspendedMembers.multi(accountIds),\n        api.query.society['vouching'].multi(accountIds)\n    ]).pipe(map(([accountIds, payouts, strikes, defenderVotes, suspended, vouching]) => accountIds.map((accountId, index) => ({\n        accountId,\n        isDefenderVoter: defenderVotes[index].isSome,\n        isSuspended: suspended[index].isTrue,\n        payouts: payouts[index],\n        strikes: strikes[index],\n        vote: defenderVotes[index].unwrapOr(undefined),\n        vouching: vouching[index].unwrapOr(undefined)\n    }))));\n}\nfunction _membersCurr(api, accountIds) {\n    return combineLatest([\n        of(accountIds),\n        api.query.society.members.multi(accountIds),\n        api.query.society.payouts.multi(accountIds),\n        api.query.society.defenderVotes.multi(accountIds),\n        api.query.society.suspendedMembers.multi(accountIds)\n    ]).pipe(map(([accountIds, members, payouts, defenderVotes, suspendedMembers]) => accountIds\n        .map((accountId, index) => members[index].isSome\n        ? {\n            accountId,\n            isDefenderVoter: defenderVotes[index].isSome\n                ? defenderVotes[index].unwrap().approve.isTrue\n                : false,\n            isSuspended: suspendedMembers[index].isSome,\n            member: members[index].unwrap(),\n            payouts: payouts[index].payouts\n        }\n        : null)\n        .filter((m) => !!m)\n        .map(({ accountId, isDefenderVoter, isSuspended, member, payouts }) => ({\n        accountId,\n        isDefenderVoter,\n        isSuspended,\n        payouts,\n        strikes: member.strikes,\n        vouching: member.vouching.unwrapOr(undefined)\n    }))));\n}\nexport function _members(instanceId, api) {\n    return memo(instanceId, (accountIds) => api.query.society.members.creator.meta.type.isMap\n        ? _membersCurr(api, accountIds)\n        : _membersPrev(api, accountIds));\n}\n/**\n * @description Get the member info for a society\n */\nexport function members(instanceId, api) {\n    return memo(instanceId, () => api.query.society.members.creator.meta.type.isMap\n        ? api.query.society.members.keys().pipe(switchMap((keys) => api.derive.society._members(keys.map(({ args: [accountId] }) => accountId))))\n        : api.query.society.members().pipe(switchMap((members) => api.derive.society._members(members))));\n}\n","import { combineLatest, map, switchMap } from 'rxjs';\nimport { BN, BN_ZERO, objectSpread } from '@polkadot/util';\nimport { firstMemo, memo } from '../util/index.js';\nconst QUERY_OPTS = {\n    withDestination: true,\n    withLedger: true,\n    withNominations: true,\n    withPrefs: true\n};\nfunction groupByEra(list) {\n    return list.reduce((map, { era, value }) => {\n        const key = era.toString();\n        map[key] = (map[key] || BN_ZERO).add(value.unwrap());\n        return map;\n    }, {});\n}\nfunction calculateUnlocking(api, stakingLedger, sessionInfo) {\n    const results = Object\n        .entries(groupByEra((stakingLedger?.unlocking || []).filter(({ era }) => era.unwrap().gt(sessionInfo.activeEra))))\n        .map(([eraString, value]) => ({\n        remainingEras: new BN(eraString).isub(sessionInfo.activeEra),\n        value: api.registry.createType('Balance', value)\n    }));\n    return results.length\n        ? results\n        : undefined;\n}\nfunction redeemableSum(api, stakingLedger, sessionInfo) {\n    return api.registry.createType('Balance', (stakingLedger?.unlocking || []).reduce((total, { era, value }) => {\n        // aligns with https://github.com/paritytech/substrate/blob/fdfdc73f9e64dc47934b72eb9af3e1989e4ba699/frame/staking/src/pallet/mod.rs#L973-L975\n        // (ensure currentEra >= era passed, as per https://github.com/paritytech/substrate/blob/fdfdc73f9e64dc47934b72eb9af3e1989e4ba699/frame/staking/src/lib.rs#L477-L494)\n        // NOTE: Previously we used activeEra >= era, which is incorrect for the last session\n        return era.unwrap().gt(sessionInfo.currentEra)\n            ? total\n            : total.iadd(value.unwrap());\n    }, new BN(0)));\n}\nfunction parseResult(api, sessionInfo, keys, query) {\n    return objectSpread({}, keys, query, {\n        redeemable: redeemableSum(api, query.stakingLedger, sessionInfo),\n        unlocking: calculateUnlocking(api, query.stakingLedger, sessionInfo)\n    });\n}\n/**\n * @description From a list of stashes, fill in all the relevant staking details\n */\nexport function accounts(instanceId, api) {\n    return memo(instanceId, (accountIds, opts = QUERY_OPTS) => api.derive.session.info().pipe(switchMap((sessionInfo) => combineLatest([\n        api.derive.staking.keysMulti(accountIds),\n        api.derive.staking.queryMulti(accountIds, opts)\n    ]).pipe(map(([keys, queries]) => queries.map((q, index) => parseResult(api, sessionInfo, keys[index], q)))))));\n}\n/**\n * @description From a stash, retrieve the controllerId and fill in all the relevant staking details\n */\nexport const account = /*#__PURE__*/ firstMemo((api, accountId, opts) => api.derive.staking.accounts([accountId], opts));\n","import { switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\n/**\n * @description Retrieve the staking overview, including elected and points earned\n */\nexport function currentPoints(instanceId, api) {\n    return memo(instanceId, () => api.derive.session.indexes().pipe(switchMap(({ activeEra }) => api.query.staking.erasRewardPoints(activeEra))));\n}\n","import { map, switchMap } from 'rxjs';\nimport { arrayFlatten } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nconst DEFAULT_FLAGS = { withController: true, withExposure: true, withPrefs: true };\nfunction combineAccounts(nextElected, validators) {\n    return arrayFlatten([nextElected, validators.filter((v) => !nextElected.find((n) => n.eq(v)))]);\n}\nexport function electedInfo(instanceId, api) {\n    return memo(instanceId, (flags = DEFAULT_FLAGS) => api.derive.staking.validators().pipe(switchMap(({ nextElected, validators }) => api.derive.staking.queryMulti(combineAccounts(nextElected, validators), flags).pipe(map((info) => ({\n        info,\n        nextElected,\n        validators\n    }))))));\n}\n","const mapCache = new Map();\nexport const deriveMapCache = {\n    del: (key) => {\n        mapCache.delete(key);\n    },\n    forEach: (cb) => {\n        for (const [k, v] of mapCache.entries()) {\n            cb(k, v);\n        }\n    },\n    get: (key) => {\n        return mapCache.get(key);\n    },\n    set: (key, value) => {\n        mapCache.set(key, value);\n    }\n};\nexport const deriveNoopCache = {\n    del: () => undefined,\n    forEach: () => undefined,\n    get: () => undefined,\n    set: (_, value) => value\n};\n","import { deriveNoopCache } from './cacheImpl.js';\nconst CHACHE_EXPIRY = 7 * (24 * 60) * (60 * 1000);\nlet deriveCache;\nfunction wrapCache(keyStart, cache) {\n    return {\n        del: (partial) => cache.del(`${keyStart}${partial}`),\n        forEach: cache.forEach,\n        get: (partial) => {\n            const key = `${keyStart}${partial}`;\n            const cached = cache.get(key);\n            if (cached) {\n                cached.x = Date.now();\n                cache.set(key, cached);\n                return cached.v;\n            }\n            return undefined;\n        },\n        set: (partial, v) => {\n            cache.set(`${keyStart}${partial}`, { v, x: Date.now() });\n        }\n    };\n}\nfunction clearCache(cache) {\n    // clear all expired values\n    const now = Date.now();\n    const all = [];\n    cache.forEach((key, { x }) => {\n        ((now - x) > CHACHE_EXPIRY) && all.push(key);\n    });\n    // don't do delete inside loop, just in-case\n    all.forEach((key) => cache.del(key));\n}\nexport function setDeriveCache(prefix = '', cache) {\n    deriveCache = cache\n        ? wrapCache(`derive:${prefix}:`, cache)\n        : deriveNoopCache;\n    if (cache) {\n        clearCache(cache);\n    }\n}\nsetDeriveCache();\nexport { deriveCache };\n","import { deriveCache } from '../util/index.js';\nexport function getEraCache(CACHE_KEY, era, withActive) {\n    const cacheKey = `${CACHE_KEY}-${era.toString()}`;\n    return [\n        cacheKey,\n        withActive\n            ? undefined\n            : deriveCache.get(cacheKey)\n    ];\n}\nexport function getEraMultiCache(CACHE_KEY, eras, withActive) {\n    const cached = withActive\n        ? []\n        : eras\n            .map((e) => deriveCache.get(`${CACHE_KEY}-${e.toString()}`))\n            .filter((v) => !!v);\n    return cached;\n}\nexport function setEraCache(cacheKey, withActive, value) {\n    !withActive && deriveCache.set(cacheKey, value);\n    return value;\n}\nexport function setEraMultiCache(CACHE_KEY, withActive, values) {\n    !withActive && values.forEach((v) => deriveCache.set(`${CACHE_KEY}-${v.era.toString()}`, v));\n    return values;\n}\nexport function filterCachedEras(eras, cached, query) {\n    return eras\n        .map((e) => cached.find(({ era }) => e.eq(era)) ||\n        query.find(({ era }) => e.eq(era)))\n        .filter((e) => !!e);\n}\n","/**\n * @name arrayChunk\n * @summary Split T[] into T[][] based on the defind size\n * @description\n * Returns a set ao arrays based on the chunksize\n * @example\n * <BR>\n *\n * ```javascript\n * import { arrayChunk } from '@polkadot/util';\n *\n * arrayChunk([1, 2, 3, 4, 5]); // [[1, 2], [3, 4], [5]]\n * ```\n */\nexport function arrayChunk(array, chunkSize) {\n    const outputSize = Math.ceil(array.length / chunkSize);\n    // shortcut for the single-split case\n    if (outputSize === 1) {\n        return [array];\n    }\n    const output = Array(outputSize);\n    for (let i = 0; i < outputSize; i++) {\n        const offset = i * chunkSize;\n        output[i] = array.slice(offset, offset + chunkSize);\n    }\n    return output;\n}\n","import { BehaviorSubject, combineLatest, map, of, switchMap, tap, toArray } from 'rxjs';\nimport { arrayChunk, arrayFlatten, nextTick } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nconst ERA_CHUNK_SIZE = 14;\nfunction chunkEras(eras, fn) {\n    const chunked = arrayChunk(eras, ERA_CHUNK_SIZE);\n    let index = 0;\n    const subject = new BehaviorSubject(chunked[index]);\n    return subject.pipe(switchMap(fn), tap(() => {\n        nextTick(() => {\n            index++;\n            index === chunked.length\n                ? subject.complete()\n                : subject.next(chunked[index]);\n        });\n    }), toArray(), map(arrayFlatten));\n}\nexport function filterEras(eras, list) {\n    return eras.filter((e) => !list.some(({ era }) => e.eq(era)));\n}\nexport function erasHistoricApply(fn) {\n    return (instanceId, api) => \n    // Cannot quite get the typing right, but it is right in the code\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n    memo(instanceId, (withActive = false) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((e) => api.derive.staking[fn](e, withActive))));\n}\nexport function erasHistoricApplyAccount(fn) {\n    return (instanceId, api) => \n    // Cannot quite get the typing right, but it is right in the code\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n    memo(instanceId, (accountId, withActive = false) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((e) => api.derive.staking[fn](accountId, e, withActive))));\n}\nexport function singleEra(fn) {\n    return (instanceId, api) => \n    // Cannot quite get the typing right, but it is right in the code\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n    memo(instanceId, (era) => api.derive.staking[fn](era, true));\n}\nexport function combineEras(fn) {\n    return (instanceId, api) => \n    // Cannot quite get the typing right, but it is right in the code\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n    memo(instanceId, (eras, withActive) => !eras.length\n        ? of([])\n        : chunkEras(eras, (eras) => combineLatest(eras.map((e) => api.derive.staking[fn](e, withActive)))));\n}\n","import { map, of } from 'rxjs';\nimport { memo } from '../util/index.js';\nimport { getEraCache, setEraCache } from './cache.js';\nimport { combineEras, erasHistoricApply, singleEra } from './util.js';\nconst CACHE_KEY = 'eraExposure';\nfunction mapStakers(era, stakers) {\n    const nominators = {};\n    const validators = {};\n    stakers.forEach(([key, exposure]) => {\n        const validatorId = key.args[1].toString();\n        validators[validatorId] = exposure;\n        exposure.others.forEach(({ who }, validatorIndex) => {\n            const nominatorId = who.toString();\n            nominators[nominatorId] = nominators[nominatorId] || [];\n            nominators[nominatorId].push({ validatorId, validatorIndex });\n        });\n    });\n    return { era, nominators, validators };\n}\nexport function _eraExposure(instanceId, api) {\n    return memo(instanceId, (era, withActive = false) => {\n        const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive);\n        return cached\n            ? of(cached)\n            : api.query.staking.erasStakersClipped.entries(era).pipe(map((r) => setEraCache(cacheKey, withActive, mapStakers(era, r))));\n    });\n}\nexport const eraExposure = /*#__PURE__*/ singleEra('_eraExposure');\nexport const _erasExposure = /*#__PURE__*/ combineEras('_eraExposure');\nexport const erasExposure = /*#__PURE__*/ erasHistoricApply('_erasExposure');\n","import { combineLatest, map, of } from 'rxjs';\nimport { BN_ONE, BN_ZERO } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nexport function erasHistoric(instanceId, api) {\n    return memo(instanceId, (withActive) => combineLatest([\n        api.query.staking.activeEra(),\n        api.consts.staking.historyDepth\n            ? of(api.consts.staking.historyDepth)\n            : api.query.staking['historyDepth']()\n    ]).pipe(map(([activeEraOpt, historyDepth]) => {\n        const result = [];\n        const max = historyDepth.toNumber();\n        const activeEra = activeEraOpt.unwrapOrDefault().index;\n        let lastEra = activeEra;\n        while (lastEra.gte(BN_ZERO) && (result.length < max)) {\n            if ((lastEra !== activeEra) || (withActive === true)) {\n                result.push(api.registry.createType('EraIndex', lastEra));\n            }\n            lastEra = lastEra.sub(BN_ONE);\n        }\n        // go from oldest to newest\n        return result.reverse();\n    })));\n}\n","import { map, of } from 'rxjs';\nimport { BN_ZERO } from '@polkadot/util';\nimport { memo } from '../util/index.js';\nimport { filterCachedEras, getEraMultiCache, setEraMultiCache } from './cache.js';\nimport { erasHistoricApply, filterEras } from './util.js';\nconst CACHE_KEY = 'eraPoints';\nfunction mapValidators({ individual }) {\n    return [...individual.entries()]\n        .filter(([, points]) => points.gt(BN_ZERO))\n        .reduce((result, [validatorId, points]) => {\n        result[validatorId.toString()] = points;\n        return result;\n    }, {});\n}\nfunction mapPoints(eras, points) {\n    return eras.map((era, index) => ({\n        era,\n        eraPoints: points[index].total,\n        validators: mapValidators(points[index])\n    }));\n}\nexport function _erasPoints(instanceId, api) {\n    return memo(instanceId, (eras, withActive) => {\n        if (!eras.length) {\n            return of([]);\n        }\n        const cached = getEraMultiCache(CACHE_KEY, eras, withActive);\n        const remaining = filterEras(eras, cached);\n        return !remaining.length\n            ? of(cached)\n            : api.query.staking.erasRewardPoints.multi(remaining).pipe(map((p) => filterCachedEras(eras, cached, setEraMultiCache(CACHE_KEY, withActive, mapPoints(remaining, p)))));\n    });\n}\nexport const erasPoints = /*#__PURE__*/ erasHistoricApply('_erasPoints');\n","import { map, of } from 'rxjs';\nimport { memo } from '../util/index.js';\nimport { getEraCache, setEraCache } from './cache.js';\nimport { combineEras, erasHistoricApply, singleEra } from './util.js';\nconst CACHE_KEY = 'eraPrefs';\nfunction mapPrefs(era, all) {\n    const validators = {};\n    all.forEach(([key, prefs]) => {\n        validators[key.args[1].toString()] = prefs;\n    });\n    return { era, validators };\n}\nexport function _eraPrefs(instanceId, api) {\n    return memo(instanceId, (era, withActive) => {\n        const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive);\n        return cached\n            ? of(cached)\n            : api.query.staking.erasValidatorPrefs.entries(era).pipe(map((r) => setEraCache(cacheKey, withActive, mapPrefs(era, r))));\n    });\n}\nexport const eraPrefs = /*#__PURE__*/ singleEra('_eraPrefs');\nexport const _erasPrefs = /*#__PURE__*/ combineEras('_eraPrefs');\nexport const erasPrefs = /*#__PURE__*/ erasHistoricApply('_erasPrefs');\n","import { map, of } from 'rxjs';\nimport { memo } from '../util/index.js';\nimport { filterCachedEras, getEraMultiCache, setEraMultiCache } from './cache.js';\nimport { erasHistoricApply, filterEras } from './util.js';\nconst CACHE_KEY = 'eraRewards';\nfunction mapRewards(eras, optRewards) {\n    return eras.map((era, index) => ({\n        era,\n        eraReward: optRewards[index].unwrapOrDefault()\n    }));\n}\nexport function _erasRewards(instanceId, api) {\n    return memo(instanceId, (eras, withActive) => {\n        if (!eras.length) {\n            return of([]);\n        }\n        const cached = getEraMultiCache(CACHE_KEY, eras, withActive);\n        const remaining = filterEras(eras, cached);\n        if (!remaining.length) {\n            return of(cached);\n        }\n        return api.query.staking.erasValidatorReward.multi(remaining).pipe(map((r) => filterCachedEras(eras, cached, setEraMultiCache(CACHE_KEY, withActive, mapRewards(remaining, r)))));\n    });\n}\nexport const erasRewards = /*#__PURE__*/ erasHistoricApply('_erasRewards');\n","import { combineLatest, map, of } from 'rxjs';\nimport { memo } from '../util/index.js';\nimport { getEraCache, setEraCache } from './cache.js';\nimport { combineEras, erasHistoricApply, singleEra } from './util.js';\nconst CACHE_KEY = 'eraSlashes';\nfunction mapSlashes(era, noms, vals) {\n    const nominators = {};\n    const validators = {};\n    noms.forEach(([key, optBalance]) => {\n        nominators[key.args[1].toString()] = optBalance.unwrap();\n    });\n    vals.forEach(([key, optRes]) => {\n        validators[key.args[1].toString()] = optRes.unwrapOrDefault()[1];\n    });\n    return { era, nominators, validators };\n}\nexport function _eraSlashes(instanceId, api) {\n    return memo(instanceId, (era, withActive) => {\n        const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive);\n        return cached\n            ? of(cached)\n            : combineLatest([\n                api.query.staking.nominatorSlashInEra.entries(era),\n                api.query.staking.validatorSlashInEra.entries(era)\n            ]).pipe(map(([n, v]) => setEraCache(cacheKey, withActive, mapSlashes(era, n, v))));\n    });\n}\nexport const eraSlashes = /*#__PURE__*/ singleEra('_eraSlashes');\nexport const _erasSlashes = /*#__PURE__*/ combineEras('_eraSlashes');\nexport const erasSlashes = /*#__PURE__*/ erasHistoricApply('_erasSlashes');\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { firstMemo, memo } from '../util/index.js';\nfunction extractsIds(stashId, queuedKeys, nextKeys) {\n    const sessionIds = (queuedKeys.find(([currentId]) => currentId.eq(stashId)) || [undefined, []])[1];\n    const nextSessionIds = nextKeys.unwrapOr([]);\n    return {\n        nextSessionIds: Array.isArray(nextSessionIds)\n            ? nextSessionIds\n            : [...nextSessionIds.values()],\n        sessionIds: Array.isArray(sessionIds)\n            ? sessionIds\n            : [...sessionIds.values()]\n    };\n}\nexport const keys = /*#__PURE__*/ firstMemo((api, stashId) => api.derive.staking.keysMulti([stashId]));\nexport function keysMulti(instanceId, api) {\n    return memo(instanceId, (stashIds) => stashIds.length\n        ? api.query.session.queuedKeys().pipe(switchMap((queuedKeys) => combineLatest([\n            of(queuedKeys),\n            api.consts['session']?.['dedupKeyPrefix']\n                ? api.query.session.nextKeys.multi(stashIds.map((s) => [api.consts['session']['dedupKeyPrefix'], s]))\n                : combineLatest(stashIds.map((s) => api.query.session.nextKeys(s)))\n        ])), map(([queuedKeys, nextKeys]) => stashIds.map((stashId, index) => extractsIds(stashId, queuedKeys, nextKeys[index]))))\n        : of([]));\n}\n","import { combineLatest, map } from 'rxjs';\nimport { objectSpread } from '@polkadot/util';\nimport { memo } from '../util/index.js';\n/**\n * @description Retrieve the staking overview, including elected and points earned\n */\nexport function overview(instanceId, api) {\n    return memo(instanceId, () => combineLatest([\n        api.derive.session.indexes(),\n        api.derive.staking.validators()\n    ]).pipe(map(([indexes, { nextElected, validators }]) => objectSpread({}, indexes, {\n        nextElected,\n        validators\n    }))));\n}\n","import { combineLatest, map, of } from 'rxjs';\nimport { firstMemo, memo } from '../util/index.js';\nimport { erasHistoricApplyAccount } from './util.js';\nexport function _ownExposures(instanceId, api) {\n    return memo(instanceId, (accountId, eras, _withActive) => eras.length\n        ? combineLatest([\n            combineLatest(eras.map((e) => api.query.staking.erasStakersClipped(e, accountId))),\n            combineLatest(eras.map((e) => api.query.staking.erasStakers(e, accountId)))\n        ]).pipe(map(([clp, exp]) => eras.map((era, index) => ({ clipped: clp[index], era, exposure: exp[index] }))))\n        : of([]));\n}\nexport const ownExposure = /*#__PURE__*/ firstMemo((api, accountId, era) => api.derive.staking._ownExposures(accountId, [era], true));\nexport const ownExposures = /*#__PURE__*/ erasHistoricApplyAccount('_ownExposures');\n","import { combineLatest, map, of } from 'rxjs';\nimport { firstMemo, memo } from '../util/index.js';\nimport { erasHistoricApplyAccount } from './util.js';\nexport function _ownSlashes(instanceId, api) {\n    return memo(instanceId, (accountId, eras, _withActive) => eras.length\n        ? combineLatest([\n            combineLatest(eras.map((e) => api.query.staking.validatorSlashInEra(e, accountId))),\n            combineLatest(eras.map((e) => api.query.staking.nominatorSlashInEra(e, accountId)))\n        ]).pipe(map(([vals, noms]) => eras.map((era, index) => ({\n            era,\n            total: vals[index].isSome\n                ? vals[index].unwrap()[1]\n                : noms[index].unwrapOrDefault()\n        }))))\n        : of([]));\n}\nexport const ownSlash = /*#__PURE__*/ firstMemo((api, accountId, era) => api.derive.staking._ownSlashes(accountId, [era], true));\nexport const ownSlashes = /*#__PURE__*/ erasHistoricApplyAccount('_ownSlashes');\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { firstMemo, memo } from '../util/index.js';\nfunction parseDetails(stashId, controllerIdOpt, nominatorsOpt, rewardDestination, validatorPrefs, exposure, stakingLedgerOpt) {\n    return {\n        accountId: stashId,\n        controllerId: controllerIdOpt?.unwrapOr(null) || null,\n        exposure,\n        nominators: nominatorsOpt.isSome\n            ? nominatorsOpt.unwrap().targets\n            : [],\n        rewardDestination,\n        stakingLedger: stakingLedgerOpt.unwrapOrDefault(),\n        stashId,\n        validatorPrefs\n    };\n}\nfunction getLedgers(api, optIds, { withLedger = false }) {\n    const ids = optIds\n        .filter((o) => withLedger && !!o && o.isSome)\n        .map((o) => o.unwrap());\n    const emptyLed = api.registry.createType('Option<StakingLedger>');\n    return (ids.length\n        ? combineLatest(ids.map((s) => api.query.staking.ledger(s)))\n        : of([])).pipe(map((optLedgers) => {\n        let offset = -1;\n        return optIds.map((o) => o && o.isSome\n            ? optLedgers[++offset] || emptyLed\n            : emptyLed);\n    }));\n}\nfunction getStashInfo(api, stashIds, activeEra, { withController, withDestination, withExposure, withLedger, withNominations, withPrefs }) {\n    const emptyNoms = api.registry.createType('Option<Nominations>');\n    const emptyRewa = api.registry.createType('RewardDestination');\n    const emptyExpo = api.registry.createType('Exposure');\n    const emptyPrefs = api.registry.createType('ValidatorPrefs');\n    return combineLatest([\n        withController || withLedger\n            ? combineLatest(stashIds.map((s) => api.query.staking.bonded(s)))\n            : of(stashIds.map(() => null)),\n        withNominations\n            ? combineLatest(stashIds.map((s) => api.query.staking.nominators(s)))\n            : of(stashIds.map(() => emptyNoms)),\n        withDestination\n            ? combineLatest(stashIds.map((s) => api.query.staking.payee(s)))\n            : of(stashIds.map(() => emptyRewa)),\n        withPrefs\n            ? combineLatest(stashIds.map((s) => api.query.staking.validators(s)))\n            : of(stashIds.map(() => emptyPrefs)),\n        withExposure\n            ? combineLatest(stashIds.map((s) => api.query.staking.erasStakers(activeEra, s)))\n            : of(stashIds.map(() => emptyExpo))\n    ]);\n}\nfunction getBatch(api, activeEra, stashIds, flags) {\n    return getStashInfo(api, stashIds, activeEra, flags).pipe(switchMap(([controllerIdOpt, nominatorsOpt, rewardDestination, validatorPrefs, exposure]) => getLedgers(api, controllerIdOpt, flags).pipe(map((stakingLedgerOpts) => stashIds.map((stashId, index) => parseDetails(stashId, controllerIdOpt[index], nominatorsOpt[index], rewardDestination[index], validatorPrefs[index], exposure[index], stakingLedgerOpts[index]))))));\n}\n/**\n * @description From a stash, retrieve the controllerId and all relevant details\n */\nexport const query = /*#__PURE__*/ firstMemo((api, accountId, flags) => api.derive.staking.queryMulti([accountId], flags));\nexport function queryMulti(instanceId, api) {\n    return memo(instanceId, (accountIds, flags) => api.derive.session.indexes().pipe(switchMap(({ activeEra }) => {\n        const stashIds = accountIds.map((a) => api.registry.createType('AccountId', a));\n        return stashIds.length\n            ? getBatch(api, activeEra, stashIds, flags)\n            : of([]);\n    })));\n}\n","import { map, switchMap } from 'rxjs';\nimport { firstMemo, memo } from '../util/index.js';\nexport function _stakerExposures(instanceId, api) {\n    return memo(instanceId, (accountIds, eras, withActive = false) => {\n        const stakerIds = accountIds.map((a) => api.registry.createType('AccountId', a).toString());\n        return api.derive.staking._erasExposure(eras, withActive).pipe(map((exposures) => stakerIds.map((stakerId) => exposures.map(({ era, nominators: allNominators, validators: allValidators }) => {\n            const isValidator = !!allValidators[stakerId];\n            const validators = {};\n            const nominating = allNominators[stakerId] || [];\n            if (isValidator) {\n                validators[stakerId] = allValidators[stakerId];\n            }\n            else if (nominating) {\n                nominating.forEach(({ validatorId }) => {\n                    validators[validatorId] = allValidators[validatorId];\n                });\n            }\n            return { era, isEmpty: !Object.keys(validators).length, isValidator, nominating, validators };\n        }))));\n    });\n}\nexport function stakerExposures(instanceId, api) {\n    return memo(instanceId, (accountIds, withActive = false) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((eras) => api.derive.staking._stakerExposures(accountIds, eras, withActive))));\n}\nexport const stakerExposure = /*#__PURE__*/ firstMemo((api, accountId, withActive) => api.derive.staking.stakerExposures([accountId], withActive));\n","import { map } from 'rxjs';\nimport { memo } from '../util/index.js';\nimport { erasHistoricApplyAccount } from './util.js';\nexport function _stakerPoints(instanceId, api) {\n    return memo(instanceId, (accountId, eras, withActive) => {\n        const stakerId = api.registry.createType('AccountId', accountId).toString();\n        return api.derive.staking._erasPoints(eras, withActive).pipe(map((points) => points.map(({ era, eraPoints, validators }) => ({\n            era,\n            eraPoints,\n            points: validators[stakerId] || api.registry.createType('RewardPoint')\n        }))));\n    });\n}\nexport const stakerPoints = /*#__PURE__*/ erasHistoricApplyAccount('_stakerPoints');\n","import { map } from 'rxjs';\nimport { memo } from '../util/index.js';\nimport { erasHistoricApplyAccount } from './util.js';\nexport function _stakerPrefs(instanceId, api) {\n    return memo(instanceId, (accountId, eras, _withActive) => api.query.staking.erasValidatorPrefs.multi(eras.map((e) => [e, accountId])).pipe(map((all) => all.map((validatorPrefs, index) => ({\n        era: eras[index],\n        validatorPrefs\n    })))));\n}\nexport const stakerPrefs = /*#__PURE__*/ erasHistoricApplyAccount('_stakerPrefs');\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { BN_BILLION, BN_ZERO, objectSpread } from '@polkadot/util';\nimport { firstMemo, memo } from '../util/index.js';\nfunction parseRewards(api, stashId, [erasPoints, erasPrefs, erasRewards], exposures) {\n    return exposures.map(({ era, isEmpty, isValidator, nominating, validators: eraValidators }) => {\n        const { eraPoints, validators: allValPoints } = erasPoints.find((p) => p.era.eq(era)) || { eraPoints: BN_ZERO, validators: {} };\n        const { eraReward } = erasRewards.find((r) => r.era.eq(era)) || { eraReward: api.registry.createType('Balance') };\n        const { validators: allValPrefs } = erasPrefs.find((p) => p.era.eq(era)) || { validators: {} };\n        const validators = {};\n        const stakerId = stashId.toString();\n        Object.entries(eraValidators).forEach(([validatorId, exposure]) => {\n            const valPoints = allValPoints[validatorId] || BN_ZERO;\n            const valComm = allValPrefs[validatorId]?.commission.unwrap() || BN_ZERO;\n            const expTotal = exposure.total?.unwrap() || BN_ZERO;\n            let avail = BN_ZERO;\n            let value;\n            if (!(expTotal.isZero() || valPoints.isZero() || eraPoints.isZero())) {\n                avail = eraReward.mul(valPoints).div(eraPoints);\n                const valCut = valComm.mul(avail).div(BN_BILLION);\n                let staked;\n                if (validatorId === stakerId) {\n                    staked = exposure.own.unwrap();\n                }\n                else {\n                    const stakerExp = exposure.others.find(({ who }) => who.eq(stakerId));\n                    staked = stakerExp\n                        ? stakerExp.value.unwrap()\n                        : BN_ZERO;\n                }\n                value = avail.sub(valCut).imul(staked).div(expTotal).iadd(validatorId === stakerId ? valCut : BN_ZERO);\n            }\n            validators[validatorId] = {\n                total: api.registry.createType('Balance', avail),\n                value: api.registry.createType('Balance', value)\n            };\n        });\n        return {\n            era,\n            eraReward,\n            isEmpty,\n            isValidator,\n            nominating,\n            validators\n        };\n    });\n}\nfunction allUniqValidators(rewards) {\n    return rewards.reduce(([all, perStash], rewards) => {\n        const uniq = [];\n        perStash.push(uniq);\n        rewards.forEach(({ validators }) => Object.keys(validators).forEach((validatorId) => {\n            if (!uniq.includes(validatorId)) {\n                uniq.push(validatorId);\n                if (!all.includes(validatorId)) {\n                    all.push(validatorId);\n                }\n            }\n        }));\n        return [all, perStash];\n    }, [[], []]);\n}\nfunction removeClaimed(validators, queryValidators, reward) {\n    const rm = [];\n    Object.keys(reward.validators).forEach((validatorId) => {\n        const index = validators.indexOf(validatorId);\n        if (index !== -1) {\n            const valLedger = queryValidators[index].stakingLedger;\n            if (valLedger?.claimedRewards.some((e) => reward.era.eq(e))) {\n                rm.push(validatorId);\n            }\n        }\n    });\n    rm.forEach((validatorId) => {\n        delete reward.validators[validatorId];\n    });\n}\nfunction filterRewards(eras, valInfo, { rewards, stakingLedger }) {\n    const filter = eras.filter((e) => !stakingLedger.claimedRewards.some((s) => s.eq(e)));\n    const validators = valInfo.map(([v]) => v);\n    const queryValidators = valInfo.map(([, q]) => q);\n    return rewards\n        .filter(({ isEmpty }) => !isEmpty)\n        .filter((reward) => {\n        if (!filter.some((e) => reward.era.eq(e))) {\n            return false;\n        }\n        removeClaimed(validators, queryValidators, reward);\n        return true;\n    })\n        .filter(({ validators }) => Object.keys(validators).length !== 0)\n        .map((reward) => objectSpread({}, reward, {\n        nominators: reward.nominating.filter((n) => reward.validators[n.validatorId])\n    }));\n}\nexport function _stakerRewardsEras(instanceId, api) {\n    return memo(instanceId, (eras, withActive = false) => combineLatest([\n        api.derive.staking._erasPoints(eras, withActive),\n        api.derive.staking._erasPrefs(eras, withActive),\n        api.derive.staking._erasRewards(eras, withActive)\n    ]));\n}\nexport function _stakerRewards(instanceId, api) {\n    return memo(instanceId, (accountIds, eras, withActive = false) => combineLatest([\n        api.derive.staking.queryMulti(accountIds, { withLedger: true }),\n        api.derive.staking._stakerExposures(accountIds, eras, withActive),\n        api.derive.staking._stakerRewardsEras(eras, withActive)\n    ]).pipe(switchMap(([queries, exposures, erasResult]) => {\n        const allRewards = queries.map(({ stakingLedger, stashId }, index) => (!stashId || !stakingLedger)\n            ? []\n            : parseRewards(api, stashId, erasResult, exposures[index]));\n        if (withActive) {\n            return of(allRewards);\n        }\n        const [allValidators, stashValidators] = allUniqValidators(allRewards);\n        return api.derive.staking.queryMulti(allValidators, { withLedger: true }).pipe(map((queriedVals) => queries.map(({ stakingLedger }, index) => filterRewards(eras, stashValidators[index]\n            .map((validatorId) => [\n            validatorId,\n            queriedVals.find((q) => q.accountId.eq(validatorId))\n        ])\n            .filter((v) => !!v[1]), {\n            rewards: allRewards[index],\n            stakingLedger\n        }))));\n    })));\n}\nexport const stakerRewards = /*#__PURE__*/ firstMemo((api, accountId, withActive) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((eras) => api.derive.staking._stakerRewards([accountId], eras, withActive))));\nexport function stakerRewardsMultiEras(instanceId, api) {\n    return memo(instanceId, (accountIds, eras) => accountIds.length && eras.length\n        ? api.derive.staking._stakerRewards(accountIds, eras, false)\n        : of([]));\n}\nexport function stakerRewardsMulti(instanceId, api) {\n    return memo(instanceId, (accountIds, withActive = false) => api.derive.staking.erasHistoric(withActive).pipe(switchMap((eras) => api.derive.staking.stakerRewardsMultiEras(accountIds, eras))));\n}\n","import { map } from 'rxjs';\nimport { memo } from '../util/index.js';\nimport { erasHistoricApplyAccount } from './util.js';\nexport function _stakerSlashes(instanceId, api) {\n    return memo(instanceId, (accountId, eras, withActive) => {\n        const stakerId = api.registry.createType('AccountId', accountId).toString();\n        return api.derive.staking._erasSlashes(eras, withActive).pipe(map((slashes) => slashes.map(({ era, nominators, validators }) => ({\n            era,\n            total: nominators[stakerId] || validators[stakerId] || api.registry.createType('Balance')\n        }))));\n    });\n}\nexport const stakerSlashes = /*#__PURE__*/ erasHistoricApplyAccount('_stakerSlashes');\n","import { map, startWith, switchMap } from 'rxjs';\nimport { drr, memo } from '../util/index.js';\nfunction onBondedEvent(api) {\n    let current = Date.now();\n    return api.query.system.events().pipe(map((events) => {\n        current = events.filter(({ event, phase }) => {\n            try {\n                return phase.isApplyExtrinsic &&\n                    event.section === 'staking' &&\n                    event.method === 'Bonded';\n            }\n            catch {\n                return false;\n            }\n        })\n            ? Date.now()\n            : current;\n        return current;\n    }), startWith(current), drr({ skipTimeout: true }));\n}\n/**\n * @description Retrieve the list of all validator stashes\n */\nexport function stashes(instanceId, api) {\n    return memo(instanceId, () => onBondedEvent(api).pipe(switchMap(() => api.query.staking.validators.keys()), map((keys) => keys.map(({ args: [v] }) => v).filter((a) => a))));\n}\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nexport function nextElected(instanceId, api) {\n    return memo(instanceId, () => api.query.staking.erasStakers\n        ? api.derive.session.indexes().pipe(\n        // only populate for next era in the last session, so track both here - entries are not\n        // subscriptions, so we need a trigger - currentIndex acts as that trigger to refresh\n        switchMap(({ currentEra }) => api.query.staking.erasStakers.keys(currentEra)), map((keys) => keys.map(({ args: [, accountId] }) => accountId)))\n        : api.query.staking['currentElected']());\n}\n/**\n * @description Retrieve latest list of validators\n */\nexport function validators(instanceId, api) {\n    return memo(instanceId, () => \n    // Sadly the node-template is (for some obscure reason) not comprehensive, so while the derive works\n    // in all actual real-world deployed chains, it does create some confusion for limited template chains\n    combineLatest([\n        api.query.session\n            ? api.query.session.validators()\n            : of([]),\n        api.query.staking\n            ? api.derive.staking.nextElected()\n            : of([])\n    ]).pipe(map(([validators, nextElected]) => ({\n        nextElected: nextElected.length\n            ? nextElected\n            : validators,\n        validators\n    }))));\n}\n","import { combineLatest, map, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nconst DEFAULT_FLAGS = { withController: true, withPrefs: true };\nexport function waitingInfo(instanceId, api) {\n    return memo(instanceId, (flags = DEFAULT_FLAGS) => combineLatest([\n        api.derive.staking.validators(),\n        api.derive.staking.stashes()\n    ]).pipe(switchMap(([{ nextElected }, stashes]) => {\n        const elected = nextElected.map((a) => a.toString());\n        const waiting = stashes.filter((v) => !elected.includes(v.toString()));\n        return api.derive.staking.queryMulti(waiting, flags).pipe(map((info) => ({\n            info,\n            waiting\n        })));\n    })));\n}\n","import { hasProposals as collectiveHasProposals, members as collectiveMembers, prime as collectivePrime, proposal as collectiveProposal, proposalCount as collectiveProposalCount, proposalHashes as collectiveProposalHashes, proposals as collectiveProposals } from '../collective/index.js';\nexport const members = /*#__PURE__*/ collectiveMembers('technicalCommittee');\nexport const hasProposals = /*#__PURE__*/ collectiveHasProposals('technicalCommittee');\nexport const proposal = /*#__PURE__*/ collectiveProposal('technicalCommittee');\nexport const proposalCount = /*#__PURE__*/ collectiveProposalCount('technicalCommittee');\nexport const proposalHashes = /*#__PURE__*/ collectiveProposalHashes('technicalCommittee');\nexport const proposals = /*#__PURE__*/ collectiveProposals('technicalCommittee');\nexport const prime = /*#__PURE__*/ collectivePrime('technicalCommittee');\n","import { combineLatest, map, of, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nfunction parseResult(api, { allIds, allProposals, approvalIds, councilProposals, proposalCount }) {\n    const approvals = [];\n    const proposals = [];\n    const councilTreasury = councilProposals.filter(({ proposal }) => proposal && (api.tx.treasury.approveProposal.is(proposal) ||\n        api.tx.treasury.rejectProposal.is(proposal)));\n    allIds.forEach((id, index) => {\n        if (allProposals[index].isSome) {\n            const council = councilTreasury\n                .filter(({ proposal }) => proposal && id.eq(proposal.args[0]))\n                .sort((a, b) => a.proposal && b.proposal\n                ? a.proposal.method.localeCompare(b.proposal.method)\n                : a.proposal\n                    ? -1\n                    : 1);\n            const isApproval = approvalIds.some((approvalId) => approvalId.eq(id));\n            const derived = { council, id, proposal: allProposals[index].unwrap() };\n            if (isApproval) {\n                approvals.push(derived);\n            }\n            else {\n                proposals.push(derived);\n            }\n        }\n    });\n    return { approvals, proposalCount, proposals };\n}\nfunction retrieveProposals(api, proposalCount, approvalIds) {\n    const proposalIds = [];\n    const count = proposalCount.toNumber();\n    for (let index = 0; index < count; index++) {\n        if (!approvalIds.some((id) => id.eqn(index))) {\n            proposalIds.push(api.registry.createType('ProposalIndex', index));\n        }\n    }\n    const allIds = [...proposalIds, ...approvalIds];\n    return combineLatest([\n        api.query.treasury.proposals.multi(allIds),\n        api.derive.council\n            ? api.derive.council.proposals()\n            : of([])\n    ]).pipe(map(([allProposals, councilProposals]) => parseResult(api, { allIds, allProposals, approvalIds, councilProposals, proposalCount })));\n}\n/**\n * @description Retrieve all active and approved treasury proposals, along with their info\n */\nexport function proposals(instanceId, api) {\n    return memo(instanceId, () => api.query.treasury\n        ? combineLatest([\n            api.query.treasury.proposalCount(),\n            api.query.treasury.approvals()\n        ]).pipe(switchMap(([proposalCount, approvalIds]) => retrieveProposals(api, proposalCount, approvalIds)))\n        : of({\n            approvals: [],\n            proposalCount: api.registry.createType('ProposalIndex'),\n            proposals: []\n        }));\n}\n","import { combineLatest, map, switchMap } from 'rxjs';\nimport { memo } from '../util/index.js';\nexport function events(instanceId, api) {\n    return memo(instanceId, (blockHash) => combineLatest([\n        api.rpc.chain.getBlock(blockHash),\n        api.queryAt(blockHash).pipe(switchMap((queryAt) => queryAt.system.events()))\n    ]).pipe(map(([block, events]) => ({ block, events }))));\n}\n","import { BN } from '@polkadot/util';\nexport const FALLBACK_MAX_HASH_COUNT = 250;\nexport const FALLBACK_PERIOD = new BN(6 * 1000);\nexport const MAX_FINALITY_LAG = new BN(5);\nexport const MORTAL_PERIOD = new BN(5 * 60 * 1000);\n","import { catchError, combineLatest, map, of, switchMap } from 'rxjs';\nimport { isNumber, isUndefined } from '@polkadot/util';\nimport { unwrapBlockNumber } from '../util/index.js';\nimport { FALLBACK_MAX_HASH_COUNT, FALLBACK_PERIOD, MAX_FINALITY_LAG, MORTAL_PERIOD } from './constants.js';\nfunction latestNonce(api, address) {\n    return api.derive.balances.account(address).pipe(map(({ accountNonce }) => accountNonce));\n}\nfunction nextNonce(api, address) {\n    return api.rpc.system?.accountNextIndex\n        ? api.rpc.system.accountNextIndex(address)\n        : latestNonce(api, address);\n}\nfunction signingHeader(api) {\n    return combineLatest([\n        api.rpc.chain.getHeader().pipe(switchMap((header) => \n        // check for chains at genesis (until block 1 is produced, e.g. 6s), since\n        // we do need to allow transactions at chain start (also dev/seal chains)\n        header.parentHash.isEmpty\n            ? of(header)\n            // in the case of the current block, we use the parent to minimize the\n            // impact of forks on the system, but not completely remove it\n            : api.rpc.chain.getHeader(header.parentHash).pipe(catchError(() => of(header))))),\n        api.rpc.chain.getFinalizedHead().pipe(switchMap((hash) => api.rpc.chain.getHeader(hash).pipe(catchError(() => of(null)))))\n    ]).pipe(map(([current, finalized]) => \n    // determine the hash to use, current when lag > max, else finalized\n    !finalized || unwrapBlockNumber(current).sub(unwrapBlockNumber(finalized)).gt(MAX_FINALITY_LAG)\n        ? current\n        : finalized));\n}\nexport function signingInfo(_instanceId, api) {\n    // no memo, we want to do this fresh on each run\n    return (address, nonce, era) => combineLatest([\n        // retrieve nonce if none was specified\n        isUndefined(nonce)\n            ? latestNonce(api, address)\n            : nonce === -1\n                ? nextNonce(api, address)\n                : of(api.registry.createType('Index', nonce)),\n        // if no era (create) or era > 0 (mortal), do block retrieval\n        (isUndefined(era) || (isNumber(era) && era > 0))\n            ? signingHeader(api)\n            : of(null)\n    ]).pipe(map(([nonce, header]) => ({\n        header,\n        mortalLength: Math.min(api.consts.system?.blockHashCount?.toNumber() || FALLBACK_MAX_HASH_COUNT, MORTAL_PERIOD\n            .div(api.consts.babe?.expectedBlockTime ||\n            api.consts.timestamp?.minimumPeriod.muln(2) ||\n            FALLBACK_PERIOD)\n            .iadd(MAX_FINALITY_LAG)\n            .toNumber()),\n        nonce\n    })));\n}\n","import * as accounts from './accounts/index.js';\nimport * as alliance from './alliance/index.js';\nimport * as bagsList from './bagsList/index.js';\nimport * as balances from './balances/index.js';\nimport * as bounties from './bounties/index.js';\nimport * as chain from './chain/index.js';\nimport * as contracts from './contracts/index.js';\nimport * as council from './council/index.js';\nimport * as crowdloan from './crowdloan/index.js';\nimport * as democracy from './democracy/index.js';\nimport * as elections from './elections/index.js';\nimport * as imOnline from './imOnline/index.js';\nimport * as membership from './membership/index.js';\nimport * as parachains from './parachains/index.js';\nimport * as session from './session/index.js';\nimport * as society from './society/index.js';\nimport * as staking from './staking/index.js';\nimport * as technicalCommittee from './technicalCommittee/index.js';\nimport * as treasury from './treasury/index.js';\nimport * as tx from './tx/index.js';\nexport const derive = { accounts, alliance, bagsList, balances, bounties, chain, contracts, council, crowdloan, democracy, elections, imOnline, membership, parachains, session, society, staking, technicalCommittee, treasury, tx };\n","import { lazyDeriveSection } from './util/index.js';\nimport { derive } from './derive.js';\nexport * from './derive.js';\nexport * from './type/index.js';\nexport { lazyDeriveSection };\nconst checks = {\n    allianceMotion: {\n        instances: ['allianceMotion'],\n        methods: []\n    },\n    bagsList: {\n        instances: ['voterBagsList', 'voterList', 'bagsList'],\n        methods: [],\n        withDetect: true\n    },\n    contracts: {\n        instances: ['contracts'],\n        methods: []\n    },\n    council: {\n        instances: ['council'],\n        methods: [],\n        withDetect: true\n    },\n    crowdloan: {\n        instances: ['crowdloan'],\n        methods: []\n    },\n    democracy: {\n        instances: ['democracy'],\n        methods: []\n    },\n    elections: {\n        instances: ['phragmenElection', 'electionsPhragmen', 'elections', 'council'],\n        methods: [],\n        withDetect: true\n    },\n    imOnline: {\n        instances: ['imOnline'],\n        methods: []\n    },\n    membership: {\n        instances: ['membership'],\n        methods: []\n    },\n    parachains: {\n        instances: ['parachains', 'registrar'],\n        methods: []\n    },\n    session: {\n        instances: ['session'],\n        methods: []\n    },\n    society: {\n        instances: ['society'],\n        methods: []\n    },\n    staking: {\n        instances: ['staking'],\n        methods: ['erasRewardPoints']\n    },\n    technicalCommittee: {\n        instances: ['technicalCommittee'],\n        methods: [],\n        withDetect: true\n    },\n    treasury: {\n        instances: ['treasury'],\n        methods: []\n    }\n};\nfunction getModuleInstances(api, specName, moduleName) {\n    return api.registry.getModuleInstances(specName, moduleName) || [];\n}\n/**\n * Returns an object that will inject `api` into all the functions inside\n * `allSections`, and keep the object architecture of `allSections`.\n */\n/** @internal */\nfunction injectFunctions(instanceId, api, derives) {\n    const result = {};\n    const names = Object.keys(derives);\n    const keys = Object.keys(api.query);\n    const specName = api.runtimeVersion.specName;\n    const filterKeys = (q) => keys.includes(q);\n    const filterInstances = (q) => getModuleInstances(api, specName, q).some(filterKeys);\n    const filterMethods = (all) => (m) => all.some((q) => keys.includes(q) && api.query[q][m]);\n    const getKeys = (s) => Object.keys(derives[s]);\n    const creator = (s, m) => derives[s][m](instanceId, api);\n    const isIncluded = (c) => (!checks[c] || ((checks[c].instances.some(filterKeys) && (!checks[c].methods.length ||\n        checks[c].methods.every(filterMethods(checks[c].instances)))) ||\n        (checks[c].withDetect &&\n            checks[c].instances.some(filterInstances))));\n    for (let i = 0, count = names.length; i < count; i++) {\n        const name = names[i];\n        isIncluded(name) &&\n            lazyDeriveSection(result, name, getKeys, creator);\n    }\n    return result;\n}\n/** @internal */\nexport function getAvailableDerives(instanceId, api, custom = {}) {\n    return {\n        ...injectFunctions(instanceId, api, derive),\n        ...injectFunctions(instanceId, api, custom)\n    };\n}\n","import { objectSpread } from '@polkadot/util';\nimport * as defs from './definitions.js';\nconst jsonrpc = {};\nObject.keys(defs).forEach((s) => Object.entries(defs[s].rpc || {}).forEach(([method, def]) => {\n    // allow for section overrides\n    const section = def.aliasSection || s;\n    if (!jsonrpc[section]) {\n        jsonrpc[section] = {};\n    }\n    jsonrpc[section][method] = objectSpread({}, def, {\n        isSubscription: !!def.pubsub,\n        jsonrpc: `${section}_${method}`,\n        method,\n        section\n    });\n}));\nexport default jsonrpc;\n","import { Observable, publishReplay, refCount } from 'rxjs';\nimport { rpcDefinitions } from '@polkadot/types';\nimport { hexToU8a, isFunction, isNull, isUndefined, lazyMethod, logger, memoize, objectSpread, u8aConcat, u8aToU8a } from '@polkadot/util';\nimport { drr, refCountDelay } from './util/index.js';\nexport { packageInfo } from './packageInfo.js';\nexport * from './util/index.js';\nconst l = logger('rpc-core');\nconst EMPTY_META = {\n    fallback: undefined,\n    modifier: { isOptional: true },\n    type: {\n        asMap: { linked: { isTrue: false } },\n        isMap: false\n    }\n};\n/** @internal */\nfunction logErrorMessage(method, { noErrorLog, params, type }, error) {\n    if (noErrorLog) {\n        return;\n    }\n    l.error(`${method}(${params.map(({ isOptional, name, type }) => `${name}${isOptional ? '?' : ''}: ${type}`).join(', ')}): ${type}:: ${error.message}`);\n}\nfunction isTreatAsHex(key) {\n    // :code is problematic - it does not have the length attached, which is\n    // unlike all other storage entries where it is indeed properly encoded\n    return ['0x3a636f6465'].includes(key.toHex());\n}\n/**\n * @name Rpc\n * @summary The API may use a HTTP or WebSockets provider.\n * @description It allows for querying a Polkadot Client Node.\n * WebSockets provider is recommended since HTTP provider only supports basic querying.\n *\n * ```mermaid\n * graph LR;\n *   A[Api] --> |WebSockets| B[WsProvider];\n *   B --> |endpoint| C[ws://127.0.0.1:9944]\n * ```\n *\n * @example\n * <BR>\n *\n * ```javascript\n * import Rpc from '@polkadot/rpc-core';\n * import { WsProvider } from '@polkadot/rpc-provider/ws';\n *\n * const provider = new WsProvider('ws://127.0.0.1:9944');\n * const rpc = new Rpc(provider);\n * ```\n */\nexport class RpcCore {\n    /**\n     * @constructor\n     * Default constructor for the core RPC handler\n     * @param  {ProviderInterface} provider An API provider using any of the supported providers (HTTP, SC or WebSocket)\n     */\n    constructor(instanceId, registry, { isPedantic = true, provider, userRpc = {} }) {\n        this.__internal__storageCache = new Map();\n        this.__internal__storageCacheHits = 0;\n        this.__internal__storageCacheSize = 0;\n        this.mapping = new Map();\n        this.sections = [];\n        if (!provider || !isFunction(provider.send)) {\n            throw new Error('Expected Provider to API create');\n        }\n        this.__internal__instanceId = instanceId;\n        this.__internal__isPedantic = isPedantic;\n        this.__internal__registryDefault = registry;\n        this.provider = provider;\n        const sectionNames = Object.keys(rpcDefinitions);\n        // these are the base keys (i.e. part of jsonrpc)\n        this.sections.push(...sectionNames);\n        // decorate all interfaces, defined and user on this instance\n        this.addUserInterfaces(userRpc);\n    }\n    /**\n     * @description Returns the connected status of a provider\n     */\n    get isConnected() {\n        return this.provider.isConnected;\n    }\n    /**\n     * @description Manually connect from the attached provider\n     */\n    connect() {\n        return this.provider.connect();\n    }\n    /**\n     * @description Manually disconnect from the attached provider\n     */\n    disconnect() {\n        return this.provider.disconnect();\n    }\n    /**\n     * @description Returns the underlying core stats, including those from teh provider\n     */\n    get stats() {\n        const stats = this.provider.stats;\n        return stats\n            ? {\n                ...stats,\n                core: {\n                    cacheHits: this.__internal__storageCacheHits,\n                    cacheSize: this.__internal__storageCacheSize\n                }\n            }\n            : undefined;\n    }\n    /**\n     * @description Sets a registry swap (typically from Api)\n     */\n    setRegistrySwap(registrySwap) {\n        this.__internal__getBlockRegistry = memoize(registrySwap, {\n            getInstanceId: () => this.__internal__instanceId\n        });\n    }\n    /**\n     * @description Sets a function to resolve block hash from block number\n     */\n    setResolveBlockHash(resolveBlockHash) {\n        this.__internal__getBlockHash = memoize(resolveBlockHash, {\n            getInstanceId: () => this.__internal__instanceId\n        });\n    }\n    addUserInterfaces(userRpc) {\n        // add any extra user-defined sections\n        this.sections.push(...Object.keys(userRpc).filter((k) => !this.sections.includes(k)));\n        for (let s = 0, scount = this.sections.length; s < scount; s++) {\n            const section = this.sections[s];\n            const defs = objectSpread({}, rpcDefinitions[section], userRpc[section]);\n            const methods = Object.keys(defs);\n            for (let m = 0, mcount = methods.length; m < mcount; m++) {\n                const method = methods[m];\n                const def = defs[method];\n                const jsonrpc = def.endpoint || `${section}_${method}`;\n                if (!this.mapping.has(jsonrpc)) {\n                    const isSubscription = !!def.pubsub;\n                    if (!this[section]) {\n                        this[section] = {};\n                    }\n                    this.mapping.set(jsonrpc, objectSpread({}, def, { isSubscription, jsonrpc, method, section }));\n                    lazyMethod(this[section], method, () => isSubscription\n                        ? this._createMethodSubscribe(section, method, def)\n                        : this._createMethodSend(section, method, def));\n                }\n            }\n        }\n    }\n    _memomize(creator, def) {\n        const memoOpts = { getInstanceId: () => this.__internal__instanceId };\n        const memoized = memoize(creator(true), memoOpts);\n        memoized.raw = memoize(creator(false), memoOpts);\n        memoized.meta = def;\n        return memoized;\n    }\n    _formatResult(isScale, registry, blockHash, method, def, params, result) {\n        return isScale\n            ? this._formatOutput(registry, blockHash, method, def, params, result)\n            : result;\n    }\n    _createMethodSend(section, method, def) {\n        const rpcName = def.endpoint || `${section}_${method}`;\n        const hashIndex = def.params.findIndex(({ isHistoric }) => isHistoric);\n        let memoized = null;\n        // execute the RPC call, doing a registry swap for historic as applicable\n        const callWithRegistry = async (isScale, values) => {\n            const blockId = hashIndex === -1\n                ? null\n                : values[hashIndex];\n            const blockHash = blockId && def.params[hashIndex].type === 'BlockNumber'\n                ? await this.__internal__getBlockHash?.(blockId)\n                : blockId;\n            const { registry } = isScale && blockHash && this.__internal__getBlockRegistry\n                ? await this.__internal__getBlockRegistry(u8aToU8a(blockHash))\n                : { registry: this.__internal__registryDefault };\n            const params = this._formatParams(registry, null, def, values);\n            // only cache .at(<blockHash>) queries, e.g. where valid blockHash was supplied\n            const result = await this.provider.send(rpcName, params.map((p) => p.toJSON()), !!blockHash);\n            return this._formatResult(isScale, registry, blockHash, method, def, params, result);\n        };\n        const creator = (isScale) => (...values) => {\n            const isDelayed = isScale && hashIndex !== -1 && !!values[hashIndex];\n            return new Observable((observer) => {\n                callWithRegistry(isScale, values)\n                    .then((value) => {\n                    observer.next(value);\n                    observer.complete();\n                })\n                    .catch((error) => {\n                    logErrorMessage(method, def, error);\n                    observer.error(error);\n                    observer.complete();\n                });\n                return () => {\n                    // delete old results from cache\n                    if (isScale) {\n                        memoized?.unmemoize(...values);\n                    }\n                    else {\n                        memoized?.raw.unmemoize(...values);\n                    }\n                };\n            }).pipe(\n            // eslint-disable-next-line deprecation/deprecation\n            publishReplay(1), // create a Replay(1)\n            isDelayed\n                ? refCountDelay() // Unsubscribe after delay\n                // eslint-disable-next-line deprecation/deprecation\n                : refCount());\n        };\n        memoized = this._memomize(creator, def);\n        return memoized;\n    }\n    // create a subscriptor, it subscribes once and resolves with the id as subscribe\n    _createSubscriber({ paramsJson, subName, subType, update }, errorHandler) {\n        return new Promise((resolve, reject) => {\n            this.provider\n                .subscribe(subType, subName, paramsJson, update)\n                .then(resolve)\n                .catch((error) => {\n                errorHandler(error);\n                reject(error);\n            });\n        });\n    }\n    _createMethodSubscribe(section, method, def) {\n        const [updateType, subMethod, unsubMethod] = def.pubsub;\n        const subName = `${section}_${subMethod}`;\n        const unsubName = `${section}_${unsubMethod}`;\n        const subType = `${section}_${updateType}`;\n        let memoized = null;\n        const creator = (isScale) => (...values) => {\n            return new Observable((observer) => {\n                // Have at least an empty promise, as used in the unsubscribe\n                let subscriptionPromise = Promise.resolve(null);\n                const registry = this.__internal__registryDefault;\n                const errorHandler = (error) => {\n                    logErrorMessage(method, def, error);\n                    observer.error(error);\n                };\n                try {\n                    const params = this._formatParams(registry, null, def, values);\n                    const update = (error, result) => {\n                        if (error) {\n                            logErrorMessage(method, def, error);\n                            return;\n                        }\n                        try {\n                            observer.next(this._formatResult(isScale, registry, null, method, def, params, result));\n                        }\n                        catch (error) {\n                            observer.error(error);\n                        }\n                    };\n                    subscriptionPromise = this._createSubscriber({ paramsJson: params.map((p) => p.toJSON()), subName, subType, update }, errorHandler);\n                }\n                catch (error) {\n                    errorHandler(error);\n                }\n                // Teardown logic\n                return () => {\n                    // Delete from cache, so old results don't hang around\n                    if (isScale) {\n                        memoized?.unmemoize(...values);\n                    }\n                    else {\n                        memoized?.raw.unmemoize(...values);\n                    }\n                    // Unsubscribe from provider\n                    subscriptionPromise\n                        .then((subscriptionId) => isNull(subscriptionId)\n                        ? Promise.resolve(false)\n                        : this.provider.unsubscribe(subType, unsubName, subscriptionId))\n                        .catch((error) => logErrorMessage(method, def, error));\n                };\n            }).pipe(drr());\n        };\n        memoized = this._memomize(creator, def);\n        return memoized;\n    }\n    _formatParams(registry, blockHash, def, inputs) {\n        const count = inputs.length;\n        const reqCount = def.params.filter(({ isOptional }) => !isOptional).length;\n        if (count < reqCount || count > def.params.length) {\n            throw new Error(`Expected ${def.params.length} parameters${reqCount === def.params.length ? '' : ` (${def.params.length - reqCount} optional)`}, ${count} found instead`);\n        }\n        const params = new Array(count);\n        for (let i = 0; i < count; i++) {\n            params[i] = registry.createTypeUnsafe(def.params[i].type, [inputs[i]], { blockHash });\n        }\n        return params;\n    }\n    _formatOutput(registry, blockHash, method, rpc, params, result) {\n        if (rpc.type === 'StorageData') {\n            const key = params[0];\n            return this._formatStorageData(registry, blockHash, key, result);\n        }\n        else if (rpc.type === 'StorageChangeSet') {\n            const keys = params[0];\n            return keys\n                ? this._formatStorageSet(registry, result.block, keys, result.changes)\n                : registry.createType('StorageChangeSet', result);\n        }\n        else if (rpc.type === 'Vec<StorageChangeSet>') {\n            const jsonSet = result;\n            const count = jsonSet.length;\n            const mapped = new Array(count);\n            for (let i = 0; i < count; i++) {\n                const { block, changes } = jsonSet[i];\n                mapped[i] = [\n                    registry.createType('BlockHash', block),\n                    this._formatStorageSet(registry, block, params[0], changes)\n                ];\n            }\n            // we only query at a specific block, not a range - flatten\n            return method === 'queryStorageAt'\n                ? mapped[0][1]\n                : mapped;\n        }\n        return registry.createTypeUnsafe(rpc.type, [result], { blockHash });\n    }\n    _formatStorageData(registry, blockHash, key, value) {\n        const isEmpty = isNull(value);\n        // we convert to Uint8Array since it maps to the raw encoding, all\n        // data will be correctly encoded (incl. numbers, excl. :code)\n        const input = isEmpty\n            ? null\n            : isTreatAsHex(key)\n                ? value\n                : u8aToU8a(value);\n        return this._newType(registry, blockHash, key, input, isEmpty);\n    }\n    _formatStorageSet(registry, blockHash, keys, changes) {\n        // For StorageChangeSet, the changes has the [key, value] mappings\n        const count = keys.length;\n        const withCache = count !== 1;\n        const values = new Array(count);\n        // multiple return values (via state.storage subscription), decode the\n        // values one at a time, all based on the supplied query types\n        for (let i = 0; i < count; i++) {\n            values[i] = this._formatStorageSetEntry(registry, blockHash, keys[i], changes, withCache, i);\n        }\n        return values;\n    }\n    _formatStorageSetEntry(registry, blockHash, key, changes, withCache, entryIndex) {\n        const hexKey = key.toHex();\n        const found = changes.find(([key]) => key === hexKey);\n        const isNotFound = isUndefined(found);\n        // if we don't find the value, this is our fallback\n        //   - in the case of an array of values, fill the hole from the cache\n        //   - if a single result value, don't fill - it is not an update hole\n        //   - fallback to an empty option in all cases\n        if (isNotFound && withCache) {\n            const cached = this.__internal__storageCache.get(hexKey);\n            if (cached) {\n                this.__internal__storageCacheHits++;\n                return cached;\n            }\n        }\n        const value = isNotFound\n            ? null\n            : found[1];\n        const isEmpty = isNull(value);\n        const input = isEmpty || isTreatAsHex(key)\n            ? value\n            : u8aToU8a(value);\n        const codec = this._newType(registry, blockHash, key, input, isEmpty, entryIndex);\n        // store the retrieved result - the only issue with this cache is that there is no\n        // clearing of it, so very long running processes (not just a couple of hours, longer)\n        // will increase memory beyond what is allowed.\n        this.__internal__storageCache.set(hexKey, codec);\n        this.__internal__storageCacheSize++;\n        return codec;\n    }\n    _newType(registry, blockHash, key, input, isEmpty, entryIndex = -1) {\n        // single return value (via state.getStorage), decode the value based on the\n        // outputType that we have specified. Fallback to Raw on nothing\n        const type = key.outputType || 'Raw';\n        const meta = key.meta || EMPTY_META;\n        const entryNum = entryIndex === -1\n            ? ''\n            : ` entry ${entryIndex}:`;\n        try {\n            return registry.createTypeUnsafe(type, [\n                isEmpty\n                    ? meta.fallback\n                        // For old-style Linkage, we add an empty linkage at the end\n                        ? type.includes('Linkage<')\n                            ? u8aConcat(hexToU8a(meta.fallback.toHex()), new Uint8Array(2))\n                            : hexToU8a(meta.fallback.toHex())\n                        : undefined\n                    : meta.modifier.isOptional\n                        ? registry.createTypeUnsafe(type, [input], { blockHash, isPedantic: this.__internal__isPedantic })\n                        : input\n            ], { blockHash, isFallback: isEmpty && !!meta.fallback, isOptional: meta.modifier.isOptional, isPedantic: this.__internal__isPedantic && !meta.modifier.isOptional });\n        }\n        catch (error) {\n            throw new Error(`Unable to decode storage ${key.section || 'unknown'}.${key.method || 'unknown'}:${entryNum}: ${error.message}`);\n        }\n    }\n}\n","import { BigInt } from '@polkadot/x-bigint';\n/**\n * @name _0n\n * @summary BigInt constant for 0.\n */\nexport const _0n = /*#__PURE__*/ BigInt(0);\n/**\n * @name _1n\n * @summary BigInt constant for 1.\n */\nexport const _1n = /*#__PURE__*/ BigInt(1);\n/**\n * @name _2n\n * @summary BigInt constant for 2.\n */\nexport const _2n = /*#__PURE__*/ BigInt(2);\n/**\n * @name _3n\n * @summary BigInt constant for 3.\n */\nexport const _3n = /*#__PURE__*/ BigInt(3);\n/**\n * @name _4n\n * @summary BigInt constant for 4.\n */\nexport const _4n = /*#__PURE__*/ BigInt(4);\n/**\n * @name _5n\n * @summary BigInt constant for 5.\n */\nexport const _5n = /*#__PURE__*/ BigInt(5);\n/**\n * @name _6n\n * @summary BigInt constant for 6.\n */\nexport const _6n = /*#__PURE__*/ BigInt(6);\n/**\n * @name _7n\n * @summary BigInt constant for 7.\n */\nexport const _7n = /*#__PURE__*/ BigInt(7);\n/**\n * @name _8n\n * @summary BigInt constant for 8.\n */\nexport const _8n = /*#__PURE__*/ BigInt(8);\n/**\n * @name _9n\n * @summary BigInt constant for 9.\n */\nexport const _9n = /*#__PURE__*/ BigInt(9);\n/**\n * @name _10n\n * @summary BigInt constant for 10.\n */\nexport const _10n = /*#__PURE__*/ BigInt(10);\n/**\n * @name _100n\n * @summary BigInt constant for 100.\n */\nexport const _100n = /*#__PURE__*/ BigInt(100);\n/**\n * @name _1000n\n * @summary BigInt constant for 1000.\n */\nexport const _1000n = /*#__PURE__*/ BigInt(1000);\n/**\n * @name _1Mn\n * @summary BigInt constant for 1,000,000 (million).\n */\nexport const _1Mn = /*#__PURE__*/ BigInt(1000000);\n/**\n* @name _1Bn\n* @summary BigInt constant for 1,000,000,000 (billion).\n*/\nexport const _1Bn = /*#__PURE__*/ BigInt(1000000000);\n/**\n* @name _1Qn\n* @summary BigInt constant for 1,000,000,000,000,000,000 (quitillion).\n*/\nexport const _1Qn = _1Bn * _1Bn;\n/**\n* @name _2pow53n\n* @summary BigInt constant for MAX_SAFE_INTEGER\n*/\nexport const _2pow53n = /*#__PURE__*/ BigInt(Number.MAX_SAFE_INTEGER);\n/**\n * @name _sqrt2pow53n\n * @summary BigInt constant for Math.sqrt(MAX_SAFE_INTEGER)\n */\nexport const _sqrt2pow53n = /*#__PURE__*/ BigInt(94906265);\n","import { _0n, _1n } from '@polkadot/util';\nimport { BigInt } from '@polkadot/x-bigint';\nconst P64_1 = BigInt('11400714785074694791');\nconst P64_2 = BigInt('14029467366897019727');\nconst P64_3 = BigInt('1609587929392839161');\nconst P64_4 = BigInt('9650029242287828579');\nconst P64_5 = BigInt('2870177450012600261');\nconst U64 = BigInt('0xffffffffffffffff');\nconst _7n = BigInt(7);\nconst _11n = BigInt(11);\nconst _12n = BigInt(12);\nconst _16n = BigInt(16);\nconst _18n = BigInt(18);\nconst _23n = BigInt(23);\nconst _27n = BigInt(27);\nconst _29n = BigInt(29);\nconst _31n = BigInt(31);\nconst _32n = BigInt(32);\nconst _33n = BigInt(33);\nconst _64n = BigInt(64);\nconst _256n = BigInt(256);\nfunction rotl(a, b) {\n    const c = a & U64;\n    return ((c << b) | (c >> (_64n - b))) & U64;\n}\nfunction fromU8a(u8a, p, count) {\n    const bigints = new Array(count);\n    let offset = 0;\n    for (let i = 0; i < count; i++, offset += 2) {\n        bigints[i] = BigInt(u8a[p + offset] | (u8a[p + 1 + offset] << 8));\n    }\n    let result = _0n;\n    for (let i = count - 1; i >= 0; i--) {\n        result = (result << _16n) + bigints[i];\n    }\n    return result;\n}\nfunction init(seed, input) {\n    const state = {\n        seed,\n        u8a: new Uint8Array(32),\n        u8asize: 0,\n        v1: seed + P64_1 + P64_2,\n        v2: seed + P64_2,\n        v3: seed,\n        v4: seed - P64_1\n    };\n    if (input.length < 32) {\n        state.u8a.set(input);\n        state.u8asize = input.length;\n        return state;\n    }\n    const limit = input.length - 32;\n    let p = 0;\n    if (limit >= 0) {\n        const adjustV = (v) => P64_1 * rotl(v + P64_2 * fromU8a(input, p, 4), _31n);\n        do {\n            state.v1 = adjustV(state.v1);\n            p += 8;\n            state.v2 = adjustV(state.v2);\n            p += 8;\n            state.v3 = adjustV(state.v3);\n            p += 8;\n            state.v4 = adjustV(state.v4);\n            p += 8;\n        } while (p <= limit);\n    }\n    if (p < input.length) {\n        state.u8a.set(input.subarray(p, input.length));\n        state.u8asize = input.length - p;\n    }\n    return state;\n}\nexport function xxhash64(input, initSeed) {\n    const { seed, u8a, u8asize, v1, v2, v3, v4 } = init(BigInt(initSeed), input);\n    let p = 0;\n    let h64 = U64 & (BigInt(input.length) + (input.length >= 32\n        ? (((((((((rotl(v1, _1n) + rotl(v2, _7n) + rotl(v3, _12n) + rotl(v4, _18n)) ^ (P64_1 * rotl(v1 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v2 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v3 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v4 * P64_2, _31n))) * P64_1 + P64_4)\n        : (seed + P64_5)));\n    while (p <= (u8asize - 8)) {\n        h64 = U64 & (P64_4 + P64_1 * rotl(h64 ^ (P64_1 * rotl(P64_2 * fromU8a(u8a, p, 4), _31n)), _27n));\n        p += 8;\n    }\n    if ((p + 4) <= u8asize) {\n        h64 = U64 & (P64_3 + P64_2 * rotl(h64 ^ (P64_1 * fromU8a(u8a, p, 2)), _23n));\n        p += 4;\n    }\n    while (p < u8asize) {\n        h64 = U64 & (P64_1 * rotl(h64 ^ (P64_5 * BigInt(u8a[p++])), _11n));\n    }\n    h64 = U64 & (P64_2 * (h64 ^ (h64 >> _33n)));\n    h64 = U64 & (P64_3 * (h64 ^ (h64 >> _29n)));\n    h64 = U64 & (h64 ^ (h64 >> _32n));\n    const result = new Uint8Array(8);\n    for (let i = 7; i >= 0; i--) {\n        result[i] = Number(h64 % _256n);\n        h64 = h64 / _256n;\n    }\n    return result;\n}\n","import { hasBigInt, u8aToU8a } from '@polkadot/util';\nimport { isReady, twox } from '@polkadot/wasm-crypto';\nimport { createAsHex } from '../helpers.js';\nimport { xxhash64 } from './xxhash64.js';\n/**\n * @name xxhashAsU8a\n * @summary Creates a xxhash64 u8a from the input.\n * @description\n * From either a `string`, `Uint8Array` or a `Buffer` input, create the xxhash64 and return the result as a `Uint8Array` with the specified `bitLength`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { xxhashAsU8a } from '@polkadot/util-crypto';\n *\n * xxhashAsU8a('abc'); // => 0x44bc2cf5ad770999\n * ```\n */\nexport function xxhashAsU8a(data, bitLength = 64, onlyJs) {\n    const rounds = Math.ceil(bitLength / 64);\n    const u8a = u8aToU8a(data);\n    if (!hasBigInt || (!onlyJs && isReady())) {\n        return twox(u8a, rounds);\n    }\n    const result = new Uint8Array(rounds * 8);\n    for (let seed = 0; seed < rounds; seed++) {\n        result.set(xxhash64(u8a, seed).reverse(), seed * 8);\n    }\n    return result;\n}\n/**\n * @name xxhashAsHex\n * @description Creates a xxhash64 hex from the input.\n */\nexport const xxhashAsHex = /*#__PURE__*/ createAsHex(xxhashAsU8a);\n","import { u8aConcat, u8aToU8a } from '@polkadot/util';\nimport { blake2AsU8a, xxhashAsU8a } from '@polkadot/util-crypto';\nconst DEFAULT_FN = (data) => xxhashAsU8a(data, 128);\nconst HASHERS = {\n    Blake2_128: (data) => // eslint-disable-line camelcase\n     blake2AsU8a(data, 128),\n    Blake2_128Concat: (data) => // eslint-disable-line camelcase\n     u8aConcat(blake2AsU8a(data, 128), u8aToU8a(data)),\n    Blake2_256: (data) => // eslint-disable-line camelcase\n     blake2AsU8a(data, 256),\n    Identity: (data) => u8aToU8a(data),\n    Twox128: (data) => xxhashAsU8a(data, 128),\n    Twox256: (data) => xxhashAsU8a(data, 256),\n    Twox64Concat: (data) => u8aConcat(xxhashAsU8a(data, 64), u8aToU8a(data))\n};\n/** @internal */\nexport function getHasher(hasher) {\n    return HASHERS[hasher.type] || DEFAULT_FN;\n}\n","import { Raw } from '@polkadot/types-codec';\nimport { compactAddLength, compactStripLength, isUndefined, objectSpread, stringCamelCase, u8aConcat, u8aToU8a } from '@polkadot/util';\nimport { xxhashAsU8a } from '@polkadot/util-crypto';\nimport { getSiName } from '../../util/index.js';\nimport { getHasher } from './getHasher.js';\nexport const NO_RAW_ARGS = {\n    args: [],\n    hashers: [],\n    keys: []\n};\n/** @internal */\nfunction filterDefined(a) {\n    return !isUndefined(a);\n}\n/** @internal */\nfunction assertArgs({ method, section }, { args, keys }) {\n    if (!Array.isArray(args)) {\n        throw new Error(`Call to ${stringCamelCase(section || 'unknown')}.${stringCamelCase(method || 'unknown')} needs ${keys.length} arguments`);\n    }\n    else if (args.filter(filterDefined).length !== keys.length) {\n        throw new Error(`Call to ${stringCamelCase(section || 'unknown')}.${stringCamelCase(method || 'unknown')} needs ${keys.length} arguments, found [${args.join(', ')}]`);\n    }\n}\n/** @internal */\nexport function createKeyRawParts(registry, itemFn, { args, hashers, keys }) {\n    const count = keys.length;\n    const extra = new Array(count);\n    for (let i = 0; i < count; i++) {\n        extra[i] = getHasher(hashers[i])(registry.createTypeUnsafe(registry.createLookupType(keys[i]), [args[i]]).toU8a());\n    }\n    return [\n        [\n            xxhashAsU8a(itemFn.prefix, 128),\n            xxhashAsU8a(itemFn.method, 128)\n        ],\n        extra\n    ];\n}\n/** @internal */\nexport function createKeyInspect(registry, itemFn, args) {\n    assertArgs(itemFn, args);\n    const { meta } = itemFn;\n    const [prefix, extra] = createKeyRawParts(registry, itemFn, args);\n    let types = [];\n    if (meta.type.isMap) {\n        const { hashers, key } = meta.type.asMap;\n        types = hashers.length === 1\n            ? [`${hashers[0].type}(${getSiName(registry.lookup, key)})`]\n            : registry.lookup.getSiType(key).def.asTuple.map((k, i) => `${hashers[i].type}(${getSiName(registry.lookup, k)})`);\n    }\n    const names = ['module', 'method'].concat(...args.args.map((_, i) => types[i]));\n    return {\n        inner: prefix\n            .concat(...extra)\n            .map((v, i) => ({ name: names[i], outer: [v] }))\n    };\n}\n/** @internal */\nexport function createKeyRaw(registry, itemFn, args) {\n    const [prefix, extra] = createKeyRawParts(registry, itemFn, args);\n    return u8aConcat(...prefix, ...extra);\n}\n/** @internal */\nfunction createKey(registry, itemFn, args) {\n    assertArgs(itemFn, args);\n    // always add the length prefix (underlying it is Bytes)\n    return compactAddLength(createKeyRaw(registry, itemFn, args));\n}\n/** @internal */\nfunction createStorageInspect(registry, itemFn, options) {\n    const { meta: { type } } = itemFn;\n    return (...args) => {\n        if (type.isPlain) {\n            return options.skipHashing\n                ? { inner: [], name: 'wellKnown', outer: [u8aToU8a(options.key)] }\n                : createKeyInspect(registry, itemFn, NO_RAW_ARGS);\n        }\n        const { hashers, key } = type.asMap;\n        return hashers.length === 1\n            ? createKeyInspect(registry, itemFn, { args, hashers, keys: [key] })\n            : createKeyInspect(registry, itemFn, { args, hashers, keys: registry.lookup.getSiType(key).def.asTuple });\n    };\n}\n/** @internal */\nfunction createStorageFn(registry, itemFn, options) {\n    const { meta: { type } } = itemFn;\n    let cacheKey = null;\n    // Can only have zero or one argument:\n    //   - storage.system.account(address)\n    //   - storage.timestamp.blockPeriod()\n    // For higher-map queries the params are passed in as an tuple, [key1, key2]\n    return (...args) => {\n        if (type.isPlain) {\n            if (!cacheKey) {\n                cacheKey = options.skipHashing\n                    ? compactAddLength(u8aToU8a(options.key))\n                    : createKey(registry, itemFn, NO_RAW_ARGS);\n            }\n            return cacheKey;\n        }\n        const { hashers, key } = type.asMap;\n        return hashers.length === 1\n            ? createKey(registry, itemFn, { args, hashers, keys: [key] })\n            : createKey(registry, itemFn, { args, hashers, keys: registry.lookup.getSiType(key).def.asTuple });\n    };\n}\n/** @internal */\nfunction createWithMeta(registry, itemFn, options) {\n    const { meta, method, prefix, section } = itemFn;\n    const storageFn = createStorageFn(registry, itemFn, options);\n    storageFn.inspect = createStorageInspect(registry, itemFn, options);\n    storageFn.meta = meta;\n    storageFn.method = stringCamelCase(method);\n    storageFn.prefix = prefix;\n    storageFn.section = section;\n    // explicitly add the actual method in the toJSON, this gets used to determine caching and without it\n    // instances (e.g. collective) will not work since it is only matched on param meta\n    storageFn.toJSON = () => objectSpread({ storage: { method, prefix, section } }, meta.toJSON());\n    return storageFn;\n}\n/** @internal */\nfunction extendHeadMeta(registry, { meta: { docs, name, type }, section }, { method }, iterFn) {\n    // metadata with a fallback value using the type of the key, the normal\n    // meta fallback only applies to actual entry values, create one for head\n    const meta = registry.createTypeUnsafe('StorageEntryMetadataLatest', [{\n            docs,\n            fallback: registry.createTypeUnsafe('Bytes', []),\n            modifier: registry.createTypeUnsafe('StorageEntryModifierLatest', [1]),\n            name,\n            type: registry.createTypeUnsafe('StorageEntryTypeLatest', [type.asMap.key, 0])\n        }]);\n    iterFn.meta = meta;\n    const fn = (...args) => registry.createTypeUnsafe('StorageKey', [iterFn(...args), { method, section }]);\n    fn.meta = meta;\n    return fn;\n}\n/** @internal */\nfunction extendPrefixedMap(registry, itemFn, storageFn) {\n    const { meta: { type }, method, section } = itemFn;\n    storageFn.iterKey = extendHeadMeta(registry, itemFn, storageFn, (...args) => {\n        if (args.length && (type.isPlain || (args.length >= type.asMap.hashers.length))) {\n            throw new Error(`Iteration of ${stringCamelCase(section || 'unknown')}.${stringCamelCase(method || 'unknown')} needs arguments to be at least one less than the full arguments, found [${args.join(', ')}]`);\n        }\n        if (args.length) {\n            if (type.isMap) {\n                const { hashers, key } = type.asMap;\n                const keysVec = hashers.length === 1\n                    ? [key]\n                    : registry.lookup.getSiType(key).def.asTuple;\n                return new Raw(registry, createKeyRaw(registry, itemFn, { args, hashers: hashers.slice(0, args.length), keys: keysVec.slice(0, args.length) }));\n            }\n        }\n        return new Raw(registry, createKeyRaw(registry, itemFn, NO_RAW_ARGS));\n    });\n    return storageFn;\n}\n/** @internal */\nexport function createFunction(registry, itemFn, options) {\n    const { meta: { type } } = itemFn;\n    const storageFn = createWithMeta(registry, itemFn, options);\n    if (type.isMap) {\n        extendPrefixedMap(registry, itemFn, storageFn);\n    }\n    storageFn.keyPrefix = (...args) => (storageFn.iterKey && storageFn.iterKey(...args)) ||\n        compactStripLength(storageFn())[1];\n    return storageFn;\n}\n","import { createFunction } from './createFunction.js';\nfunction findSiPrimitive(registry, _prim) {\n    const prim = _prim.toLowerCase();\n    return registry.lookup.types.find((t) => (t.type.def.isPrimitive &&\n        t.type.def.asPrimitive.toString().toLowerCase() === prim) || (t.type.def.isHistoricMetaCompat &&\n        t.type.def.asHistoricMetaCompat.toString().toLowerCase() === prim));\n}\nfunction findSiType(registry, orig) {\n    let portable = findSiPrimitive(registry, orig);\n    if (!portable && orig === 'Bytes') {\n        const u8 = findSiPrimitive(registry, 'u8');\n        if (u8) {\n            portable = registry.lookup.types.find((t) => (t.type.def.isSequence &&\n                t.type.def.asSequence.type.eq(u8.id)) || (t.type.def.isHistoricMetaCompat &&\n                t.type.def.asHistoricMetaCompat.eq(orig)));\n        }\n    }\n    if (!portable) {\n        console.warn(`Unable to map ${orig} to a lookup index`);\n    }\n    return portable;\n}\n/** @internal */\nexport function createRuntimeFunction({ method, prefix, section }, key, { docs, type }) {\n    return (registry) => createFunction(registry, {\n        meta: registry.createTypeUnsafe('StorageEntryMetadataLatest', [{\n                docs: registry.createTypeUnsafe('Vec<Text>', [[docs]]),\n                modifier: registry.createTypeUnsafe('StorageEntryModifierLatest', ['Required']),\n                name: registry.createTypeUnsafe('Text', [method]),\n                toJSON: () => key,\n                type: registry.createTypeUnsafe('StorageEntryTypeLatest', [{ Plain: findSiType(registry, type)?.id || 0 }])\n            }]),\n        method,\n        prefix,\n        section\n    }, { key, skipHashing: true });\n}\n","import { createRuntimeFunction } from './util.js';\nconst prefix = 'Substrate';\nconst section = 'substrate';\nfunction createSubstrateFn(method, key, meta) {\n    return createRuntimeFunction({ method, prefix, section }, key, meta);\n}\nexport const substrate = {\n    changesTrieConfig: createSubstrateFn('changesTrieConfig', ':changes_trie', {\n        docs: 'Changes trie configuration is stored under this key.',\n        type: 'u32'\n    }),\n    childStorageKeyPrefix: createSubstrateFn('childStorageKeyPrefix', ':child_storage:', {\n        docs: 'Prefix of child storage keys.',\n        type: 'u32'\n    }),\n    code: createSubstrateFn('code', ':code', {\n        docs: 'Wasm code of the runtime.',\n        type: 'Bytes'\n    }),\n    extrinsicIndex: createSubstrateFn('extrinsicIndex', ':extrinsic_index', {\n        docs: 'Current extrinsic index (u32) is stored under this key.',\n        type: 'u32'\n    }),\n    heapPages: createSubstrateFn('heapPages', ':heappages', {\n        docs: 'Number of wasm linear memory pages required for execution of the runtime.',\n        type: 'u64'\n    })\n};\n","import { lazyMethod, lazyMethods, stringCamelCase } from '@polkadot/util';\nimport { objectNameToCamel } from '../util.js';\nimport { createFunction, createKeyRaw, NO_RAW_ARGS } from './createFunction.js';\nimport { getStorage } from './getStorage.js';\nimport { createRuntimeFunction } from './util.js';\nconst VERSION_NAME = 'palletVersion';\nconst VERSION_KEY = ':__STORAGE_VERSION__:';\nconst VERSION_DOCS = { docs: 'Returns the current pallet version from storage', type: 'u16' };\n/** @internal */\nexport function decorateStorage(registry, { pallets }, _metaVersion) {\n    const result = getStorage(registry);\n    for (let i = 0, count = pallets.length; i < count; i++) {\n        const { name, storage } = pallets[i];\n        if (storage.isSome) {\n            const section = stringCamelCase(name);\n            const { items, prefix: _prefix } = storage.unwrap();\n            const prefix = _prefix.toString();\n            lazyMethod(result, section, () => lazyMethods({\n                palletVersion: createRuntimeFunction({ method: VERSION_NAME, prefix, section }, createKeyRaw(registry, { method: VERSION_KEY, prefix: name.toString() }, NO_RAW_ARGS), VERSION_DOCS)(registry)\n            }, items, (meta) => createFunction(registry, { meta, method: meta.name.toString(), prefix, section }, {}), objectNameToCamel));\n        }\n    }\n    return result;\n}\n","import { substrate } from './substrate.js';\n/** @internal */\nexport function getStorage(registry) {\n    const storage = {};\n    const entries = Object.entries(substrate);\n    for (let e = 0, count = entries.length; e < count; e++) {\n        storage[entries[e][0]] = entries[e][1](registry);\n    }\n    return { substrate: storage };\n}\n","import { CC_TO_LO, CC_TO_UP } from './camelCase.js';\n/** @internal */\nfunction converter(map) {\n    return (value) => value\n        ? map[value.charCodeAt(0)] + value.slice(1)\n        : '';\n}\n/**\n * @name stringLowerFirst\n * @summary Lowercase the first letter of a string\n * @description\n * Lowercase the first letter of a string\n * @example\n * <BR>\n *\n * ```javascript\n * import { stringLowerFirst } from '@polkadot/util';\n *\n * stringLowerFirst('ABC'); // => 'aBC'\n * ```\n */\nexport const stringLowerFirst = /*#__PURE__*/ converter(CC_TO_LO);\n/**\n * @name stringUpperFirst\n * @summary Uppercase the first letter of a string\n * @description\n * Lowercase the first letter of a string\n * @example\n * <BR>\n *\n * ```javascript\n * import { stringUpperFirst } from '@polkadot/util';\n *\n * stringUpperFirst('abc'); // => 'Abc'\n * ```\n */\nexport const stringUpperFirst = /*#__PURE__*/ converter(CC_TO_UP);\n","import { EmptyError } from '../util/EmptyError';\nimport { MonoTypeOperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * If the source observable completes without emitting a value, it will emit\n * an error. The error will be created at that time by the optional\n * `errorFactory` argument, otherwise, the error will be {@link EmptyError}.\n *\n * ![](throwIfEmpty.png)\n *\n * ## Example\n *\n * Throw an error if the document wasn't clicked within 1 second\n *\n * ```ts\n * import { fromEvent, takeUntil, timer, throwIfEmpty } from 'rxjs';\n *\n * const click$ = fromEvent(document, 'click');\n *\n * click$.pipe(\n *   takeUntil(timer(1000)),\n *   throwIfEmpty(() => new Error('The document was not clicked within 1 second'))\n * )\n * .subscribe({\n *   next() {\n *    console.log('The document was clicked');\n *   },\n *   error(err) {\n *     console.error(err.message);\n *   }\n * });\n * ```\n *\n * @param errorFactory A factory function called to produce the\n * error to be thrown when the source observable completes without emitting a\n * value.\n * @return A function that returns an Observable that throws an error if the\n * source Observable completed without emitting.\n */\nexport function throwIfEmpty<T>(errorFactory: () => any = defaultErrorFactory): MonoTypeOperatorFunction<T> {\n  return operate((source, subscriber) => {\n    let hasValue = false;\n    source.subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (value) => {\n          hasValue = true;\n          subscriber.next(value);\n        },\n        () => (hasValue ? subscriber.complete() : subscriber.error(errorFactory()))\n      )\n    );\n  });\n}\n\nfunction defaultErrorFactory() {\n  return new EmptyError();\n}\n","import { Observable } from '../Observable';\nimport { EmptyError } from '../util/EmptyError';\nimport { OperatorFunction, TruthyTypesOf } from '../types';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\n\nexport function first<T, D = T>(predicate?: null, defaultValue?: D): OperatorFunction<T, T | D>;\nexport function first<T>(predicate: BooleanConstructor): OperatorFunction<T, TruthyTypesOf<T>>;\nexport function first<T, D>(predicate: BooleanConstructor, defaultValue: D): OperatorFunction<T, TruthyTypesOf<T> | D>;\nexport function first<T, S extends T>(\n  predicate: (value: T, index: number, source: Observable<T>) => value is S,\n  defaultValue?: S\n): OperatorFunction<T, S>;\nexport function first<T, S extends T, D>(\n  predicate: (value: T, index: number, source: Observable<T>) => value is S,\n  defaultValue: D\n): OperatorFunction<T, S | D>;\nexport function first<T, D = T>(\n  predicate: (value: T, index: number, source: Observable<T>) => boolean,\n  defaultValue?: D\n): OperatorFunction<T, T | D>;\n\n/**\n * Emits only the first value (or the first value that meets some condition)\n * emitted by the source Observable.\n *\n * <span class=\"informal\">Emits only the first value. Or emits only the first\n * value that passes some test.</span>\n *\n * ![](first.png)\n *\n * If called with no arguments, `first` emits the first value of the source\n * Observable, then completes. If called with a `predicate` function, `first`\n * emits the first value of the source that matches the specified condition. Throws an error if\n * `defaultValue` was not provided and a matching element is not found.\n *\n * ## Examples\n *\n * Emit only the first click that happens on the DOM\n *\n * ```ts\n * import { fromEvent, first } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(first());\n * result.subscribe(x => console.log(x));\n * ```\n *\n * Emits the first click that happens on a DIV\n *\n * ```ts\n * import { fromEvent, first } from 'rxjs';\n *\n * const div = document.createElement('div');\n * div.style.cssText = 'width: 200px; height: 200px; background: #09c;';\n * document.body.appendChild(div);\n *\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(first(ev => (<HTMLElement>ev.target).tagName === 'DIV'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link take}\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * This is how `first()` is different from {@link take}(1) which completes instead.\n *\n * @param {function(value: T, index: number, source: Observable<T>): boolean} [predicate]\n * An optional function called with each item to test for condition matching.\n * @param {D} [defaultValue] The default value emitted in case no valid value\n * was found on the source.\n * @return A function that returns an Observable that emits the first item that\n * matches the condition.\n */\nexport function first<T, D>(\n  predicate?: ((value: T, index: number, source: Observable<T>) => boolean) | null,\n  defaultValue?: D\n): OperatorFunction<T, T | D> {\n  const hasDefaultValue = arguments.length >= 2;\n  return (source: Observable<T>) =>\n    source.pipe(\n      predicate ? filter((v, i) => predicate(v, i, source)) : identity,\n      take(1),\n      hasDefaultValue ? defaultIfEmpty(defaultValue!) : throwIfEmpty(() => new EmptyError())\n    );\n}\n","import { OperatorFunction, MonoTypeOperatorFunction, TruthyTypesOf } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function filter<T, S extends T, A>(predicate: (this: A, value: T, index: number) => value is S, thisArg: A): OperatorFunction<T, S>;\nexport function filter<T, S extends T>(predicate: (value: T, index: number) => value is S): OperatorFunction<T, S>;\nexport function filter<T>(predicate: BooleanConstructor): OperatorFunction<T, TruthyTypesOf<T>>;\n/** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */\nexport function filter<T, A>(predicate: (this: A, value: T, index: number) => boolean, thisArg: A): MonoTypeOperatorFunction<T>;\nexport function filter<T>(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction<T>;\n\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * <span class=\"informal\">Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.</span>\n *\n * ![](filter.png)\n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * ## Example\n *\n * Emit only click events whose target was a DIV element\n *\n * ```ts\n * import { fromEvent, filter } from 'rxjs';\n *\n * const div = document.createElement('div');\n * div.style.cssText = 'width: 200px; height: 200px; background: #09c;';\n * document.body.appendChild(div);\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksOnDivs = clicks.pipe(filter(ev => (<HTMLElement>ev.target).tagName === 'DIV'));\n * clicksOnDivs.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param thisArg An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return A function that returns an Observable that emits items from the\n * source Observable that satisfy the specified `predicate`.\n */\nexport function filter<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction<T> {\n  return operate((source, subscriber) => {\n    // An index passed to our predicate function on each call.\n    let index = 0;\n\n    // Subscribe to the source, all errors and completions are\n    // forwarded to the consumer.\n    source.subscribe(\n      // Call the predicate with the appropriate `this` context,\n      // if the predicate returns `true`, then send the value\n      // to the consumer.\n      createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value))\n    );\n  });\n}\n","import { MonoTypeOperatorFunction } from '../types';\nimport { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Emits only the first `count` values emitted by the source Observable.\n *\n * <span class=\"informal\">Takes the first `count` values from the source, then\n * completes.</span>\n *\n * ![](take.png)\n *\n * `take` returns an Observable that emits only the first `count` values emitted\n * by the source Observable. If the source emits fewer than `count` values then\n * all of its values are emitted. After that, it completes, regardless if the\n * source completes.\n *\n * ## Example\n *\n * Take the first 5 seconds of an infinite 1-second interval Observable\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const intervalCount = interval(1000);\n * const takeFive = intervalCount.pipe(take(5));\n * takeFive.subscribe(x => console.log(x));\n *\n * // Logs:\n * // 0\n * // 1\n * // 2\n * // 3\n * // 4\n * ```\n *\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @param count The maximum number of `next` values to emit.\n * @return A function that returns an Observable that emits only the first\n * `count` values emitted by the source Observable, or all of the values from\n * the source if the source emits fewer than `count` values.\n */\nexport function take<T>(count: number): MonoTypeOperatorFunction<T> {\n  return count <= 0\n    ? // If we are taking no values, that's empty.\n      () => EMPTY\n    : operate((source, subscriber) => {\n        let seen = 0;\n        source.subscribe(\n          createOperatorSubscriber(subscriber, (value) => {\n            // Increment the number of values we have seen,\n            // then check it against the allowed count to see\n            // if we are still letting values through.\n            if (++seen <= count) {\n              subscriber.next(value);\n              // If we have met or passed our allowed count,\n              // we need to complete. We have to do <= here,\n              // because re-entrant code will increment `seen` twice.\n              if (count <= seen) {\n                subscriber.complete();\n              }\n            }\n          })\n        );\n      });\n}\n","import { OperatorFunction } from '../types';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\n\n/**\n * Emits a given value if the source Observable completes without emitting any\n * `next` value, otherwise mirrors the source Observable.\n *\n * <span class=\"informal\">If the source Observable turns out to be empty, then\n * this operator will emit a default value.</span>\n *\n * ![](defaultIfEmpty.png)\n *\n * `defaultIfEmpty` emits the values emitted by the source Observable or a\n * specified default value if the source Observable is empty (completes without\n * having emitted any `next` value).\n *\n * ## Example\n *\n * If no clicks happen in 5 seconds, then emit 'no clicks'\n *\n * ```ts\n * import { fromEvent, takeUntil, interval, defaultIfEmpty } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * const clicksBeforeFive = clicks.pipe(takeUntil(interval(5000)));\n * const result = clicksBeforeFive.pipe(defaultIfEmpty('no clicks'));\n * result.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link empty}\n * @see {@link last}\n *\n * @param defaultValue The default value used if the source\n * Observable is empty.\n * @return A function that returns an Observable that emits either the\n * specified `defaultValue` if the source Observable emits no items, or the\n * values emitted by the source Observable.\n */\nexport function defaultIfEmpty<T, R>(defaultValue: R): OperatorFunction<T, T | R> {\n  return operate((source, subscriber) => {\n    let hasValue = false;\n    source.subscribe(\n      createOperatorSubscriber(\n        subscriber,\n        (value) => {\n          hasValue = true;\n          subscriber.next(value);\n        },\n        () => {\n          if (!hasValue) {\n            subscriber.next(defaultValue!);\n          }\n          subscriber.complete();\n        }\n      )\n    );\n  });\n}\n","import { isFunction } from '@polkadot/util';\nexport function isKeyringPair(account) {\n    return isFunction(account.sign);\n}\n","import { logger } from '@polkadot/util';\nexport const l = /*#__PURE__*/ logger('api/util');\n","import { isCompact } from '@polkadot/util';\nimport { l } from './logging.js';\nexport function filterEvents(txHash, { block: { extrinsics, header } }, allEvents, status) {\n    // extrinsics to hashes\n    for (const [txIndex, x] of extrinsics.entries()) {\n        if (x.hash.eq(txHash)) {\n            return {\n                blockNumber: isCompact(header.number) ? header.number.unwrap() : header.number,\n                events: allEvents.filter(({ phase }) => phase.isApplyExtrinsic &&\n                    phase.asApplyExtrinsic.eqn(txIndex)),\n                txIndex\n            };\n        }\n    }\n    // if we do get the block after finalized, it _should_ be there\n    // only warn on filtering with isInBlock (finalization finalizes after)\n    if (status.isInBlock) {\n        const allHashes = extrinsics.map((x) => x.hash.toHex());\n        l.warn(`block ${header.hash.toHex()}: Unable to find extrinsic ${txHash.toHex()} inside ${allHashes.join(', ')}`);\n    }\n    return {};\n}\n","const recordIdentity = (record) => record;\nfunction filterAndApply(events, section, methods, onFound) {\n    return events\n        .filter(({ event }) => section === event.section &&\n        methods.includes(event.method))\n        .map((record) => onFound(record));\n}\nfunction getDispatchError({ event: { data: [dispatchError] } }) {\n    return dispatchError;\n}\nfunction getDispatchInfo({ event: { data, method } }) {\n    return method === 'ExtrinsicSuccess'\n        ? data[0]\n        : data[1];\n}\nfunction extractError(events = []) {\n    return filterAndApply(events, 'system', ['ExtrinsicFailed'], getDispatchError)[0];\n}\nfunction extractInfo(events = []) {\n    return filterAndApply(events, 'system', ['ExtrinsicFailed', 'ExtrinsicSuccess'], getDispatchInfo)[0];\n}\nexport class SubmittableResult {\n    constructor({ blockNumber, dispatchError, dispatchInfo, events, internalError, status, txHash, txIndex }) {\n        this.dispatchError = dispatchError || extractError(events);\n        this.dispatchInfo = dispatchInfo || extractInfo(events);\n        this.events = events || [];\n        this.internalError = internalError;\n        this.status = status;\n        this.txHash = txHash;\n        this.txIndex = txIndex;\n        this.blockNumber = blockNumber;\n    }\n    get isCompleted() {\n        return this.isError || this.status.isInBlock || this.status.isFinalized;\n    }\n    get isError() {\n        return this.status.isDropped || this.status.isFinalityTimeout || this.status.isInvalid || this.status.isUsurped;\n    }\n    get isFinalized() {\n        return this.status.isFinalized;\n    }\n    get isInBlock() {\n        return this.status.isInBlock;\n    }\n    get isWarning() {\n        return this.status.isRetracted;\n    }\n    /**\n     * @description Filters EventRecords for the specified method & section (there could be multiple)\n     */\n    filterRecords(section, method) {\n        return filterAndApply(this.events, section, Array.isArray(method) ? method : [method], recordIdentity);\n    }\n    /**\n     * @description Finds an EventRecord for the specified method & section\n     */\n    findRecord(section, method) {\n        return this.filterRecords(section, method)[0];\n    }\n    /**\n     * @description Creates a human representation of the output\n     */\n    toHuman(isExtended) {\n        return {\n            dispatchError: this.dispatchError?.toHuman(),\n            dispatchInfo: this.dispatchInfo?.toHuman(),\n            events: this.events.map((e) => e.toHuman(isExtended)),\n            internalError: this.internalError?.message.toString(),\n            status: this.status.toHuman(isExtended)\n        };\n    }\n}\n","import { catchError, first, map, mergeMap, of, switchMap, tap } from 'rxjs';\nimport { identity, isBn, isFunction, isNumber, isString, isU8a, objectSpread } from '@polkadot/util';\nimport { filterEvents, isKeyringPair } from '../util/index.js';\nimport { SubmittableResult } from './Result.js';\nfunction makeEraOptions(api, registry, partialOptions, { header, mortalLength, nonce }) {\n    if (!header) {\n        if (partialOptions.era && !partialOptions.blockHash) {\n            throw new Error('Expected blockHash to be passed alongside non-immortal era options');\n        }\n        if (isNumber(partialOptions.era)) {\n            // since we have no header, it is immortal, remove any option overrides\n            // so we only supply the genesisHash and no era to the construction\n            delete partialOptions.era;\n            delete partialOptions.blockHash;\n        }\n        return makeSignOptions(api, partialOptions, { nonce });\n    }\n    return makeSignOptions(api, partialOptions, {\n        blockHash: header.hash,\n        era: registry.createTypeUnsafe('ExtrinsicEra', [{\n                current: header.number,\n                period: partialOptions.era || mortalLength\n            }]),\n        nonce\n    });\n}\nfunction makeSignAndSendOptions(partialOptions, statusCb) {\n    let options = {};\n    if (isFunction(partialOptions)) {\n        statusCb = partialOptions;\n    }\n    else {\n        options = objectSpread({}, partialOptions);\n    }\n    return [options, statusCb];\n}\nfunction makeSignOptions(api, partialOptions, extras) {\n    return objectSpread({ blockHash: api.genesisHash, genesisHash: api.genesisHash }, partialOptions, extras, { runtimeVersion: api.runtimeVersion, signedExtensions: api.registry.signedExtensions, version: api.extrinsicType });\n}\nfunction optionsOrNonce(partialOptions = {}) {\n    return isBn(partialOptions) || isNumber(partialOptions)\n        ? { nonce: partialOptions }\n        : partialOptions;\n}\nexport function createClass({ api, apiType, blockHash, decorateMethod }) {\n    // an instance of the base extrinsic for us to extend\n    const ExtrinsicBase = api.registry.createClass('Extrinsic');\n    class Submittable extends ExtrinsicBase {\n        constructor(registry, extrinsic) {\n            super(registry, extrinsic, { version: api.extrinsicType });\n            this.__internal__transformResult = (identity);\n            this.__internal__observeSign = (account, partialOptions) => {\n                const address = isKeyringPair(account) ? account.address : account.toString();\n                const options = optionsOrNonce(partialOptions);\n                return api.derive.tx.signingInfo(address, options.nonce, options.era).pipe(first(), mergeMap(async (signingInfo) => {\n                    const eraOptions = makeEraOptions(api, this.registry, options, signingInfo);\n                    let updateId = -1;\n                    if (isKeyringPair(account)) {\n                        this.sign(account, eraOptions);\n                    }\n                    else {\n                        updateId = await this.__internal__signViaSigner(address, eraOptions, signingInfo.header);\n                    }\n                    return { options: eraOptions, updateId };\n                }));\n            };\n            this.__internal__observeStatus = (txHash, status) => {\n                if (!status.isFinalized && !status.isInBlock) {\n                    return of(this.__internal__transformResult(new SubmittableResult({\n                        status,\n                        txHash\n                    })));\n                }\n                const blockHash = status.isInBlock\n                    ? status.asInBlock\n                    : status.asFinalized;\n                return api.derive.tx.events(blockHash).pipe(map(({ block, events }) => this.__internal__transformResult(new SubmittableResult({\n                    ...filterEvents(txHash, block, events, status),\n                    status,\n                    txHash\n                }))), catchError((internalError) => of(this.__internal__transformResult(new SubmittableResult({\n                    internalError,\n                    status,\n                    txHash\n                })))));\n            };\n            this.__internal__observeSend = (info) => {\n                return api.rpc.author.submitExtrinsic(this).pipe(tap((hash) => {\n                    this.__internal__updateSigner(hash, info);\n                }));\n            };\n            this.__internal__observeSubscribe = (info) => {\n                const txHash = this.hash;\n                return api.rpc.author.submitAndWatchExtrinsic(this).pipe(switchMap((status) => this.__internal__observeStatus(txHash, status)), tap((status) => {\n                    this.__internal__updateSigner(status, info);\n                }));\n            };\n            this.__internal__signViaSigner = async (address, options, header) => {\n                const signer = options.signer || api.signer;\n                if (!signer) {\n                    throw new Error('No signer specified, either via api.setSigner or via sign options. You possibly need to pass through an explicit keypair for the origin so it can be used for signing.');\n                }\n                const payload = this.registry.createTypeUnsafe('SignerPayload', [objectSpread({}, options, {\n                        address,\n                        blockNumber: header ? header.number : 0,\n                        method: this.method\n                    })]);\n                let result;\n                if (isFunction(signer.signPayload)) {\n                    result = await signer.signPayload(payload.toPayload());\n                }\n                else if (isFunction(signer.signRaw)) {\n                    result = await signer.signRaw(payload.toRaw());\n                }\n                else {\n                    throw new Error('Invalid signer interface, it should implement either signPayload or signRaw (or both)');\n                }\n                // Here we explicitly call `toPayload()` again instead of working with an object\n                // (reference) as passed to the signer. This means that we are sure that the\n                // payload data is not modified from our inputs, but the signer\n                super.addSignature(address, result.signature, payload.toPayload());\n                return result.id;\n            };\n            this.__internal__updateSigner = (status, info) => {\n                if (info && (info.updateId !== -1)) {\n                    const { options, updateId } = info;\n                    const signer = options.signer || api.signer;\n                    if (signer && isFunction(signer.update)) {\n                        signer.update(updateId, status);\n                    }\n                }\n            };\n            this.__internal__ignoreStatusCb = apiType === 'rxjs';\n        }\n        get hasDryRun() {\n            return isFunction(api.rpc.system?.dryRun);\n        }\n        get hasPaymentInfo() {\n            return isFunction(api.call.transactionPaymentApi?.queryInfo);\n        }\n        // dry run an extrinsic\n        dryRun(account, optionsOrHash) {\n            if (!this.hasDryRun) {\n                throw new Error('The system.dryRun RPC call is not available in your environment');\n            }\n            if (blockHash || isString(optionsOrHash) || isU8a(optionsOrHash)) {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n                return decorateMethod(() => api.rpc.system.dryRun(this.toHex(), blockHash || optionsOrHash));\n            }\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call\n            return decorateMethod(() => this.__internal__observeSign(account, optionsOrHash).pipe(switchMap(() => api.rpc.system.dryRun(this.toHex()))))();\n        }\n        // calculate the payment info for this transaction (if signed and submitted)\n        paymentInfo(account, optionsOrHash) {\n            if (!this.hasPaymentInfo) {\n                throw new Error('The transactionPaymentApi.queryInfo runtime call is not available in your environment');\n            }\n            if (blockHash || isString(optionsOrHash) || isU8a(optionsOrHash)) {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n                return decorateMethod(() => api.callAt(blockHash || optionsOrHash).pipe(switchMap((callAt) => {\n                    const u8a = this.toU8a();\n                    return callAt.transactionPaymentApi.queryInfo(u8a, u8a.length);\n                })));\n            }\n            const [allOptions] = makeSignAndSendOptions(optionsOrHash);\n            const address = isKeyringPair(account) ? account.address : account.toString();\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call\n            return decorateMethod(() => api.derive.tx.signingInfo(address, allOptions.nonce, allOptions.era).pipe(first(), switchMap((signingInfo) => {\n                // setup our options (same way as in signAndSend)\n                const eraOptions = makeEraOptions(api, this.registry, allOptions, signingInfo);\n                const signOptions = makeSignOptions(api, eraOptions, {});\n                // 1. Don't use the internal objects inside the new tx (hence toU8a)\n                // 2. Don't override the data from existing signed extrinsics\n                // 3. Ensure that this object stays intact, with no new sign after operation\n                const u8a = api.tx(this.toU8a()).signFake(address, signOptions).toU8a();\n                return api.call.transactionPaymentApi.queryInfo(u8a, u8a.length);\n            })))();\n        }\n        // send implementation for both immediate Hash and statusCb variants\n        send(statusCb) {\n            const isSubscription = api.hasSubscriptions && (this.__internal__ignoreStatusCb || !!statusCb);\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call\n            return decorateMethod(isSubscription\n                ? this.__internal__observeSubscribe\n                : this.__internal__observeSend)(statusCb);\n        }\n        /**\n         * @description Signs a transaction, returning `this` to allow chaining. E.g.: `signAsync(...).send()`. Like `.signAndSend` this will retrieve the nonce and blockHash to send the tx with.\n         */\n        signAsync(account, partialOptions) {\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call\n            return decorateMethod(() => this.__internal__observeSign(account, partialOptions).pipe(map(() => this)))();\n        }\n        // signAndSend implementation for all 3 cases above\n        signAndSend(account, partialOptions, optionalStatusCb) {\n            const [options, statusCb] = makeSignAndSendOptions(partialOptions, optionalStatusCb);\n            const isSubscription = api.hasSubscriptions && (this.__internal__ignoreStatusCb || !!statusCb);\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call\n            return decorateMethod(() => this.__internal__observeSign(account, options).pipe(switchMap((info) => isSubscription\n                ? this.__internal__observeSubscribe(info)\n                : this.__internal__observeSend(info))) // FIXME This is wrong, SubmittableResult is _not_ a codec\n            )(statusCb);\n        }\n        // adds a transform to the result, applied before result is returned\n        withResultTransform(transform) {\n            this.__internal__transformResult = transform;\n            return this;\n        }\n    }\n    return Submittable;\n}\n","import { createClass } from './createClass.js';\nexport function createSubmittable(apiType, api, decorateMethod, registry, blockHash) {\n    const Submittable = createClass({ api, apiType, blockHash, decorateMethod });\n    return (extrinsic) => new Submittable(registry || api.registry, extrinsic);\n}\n","import { lazyMethods, logger, objectClear } from '@polkadot/util';\nconst l = logger('api/augment');\nfunction logLength(type, values, and = []) {\n    return values.length\n        ? ` ${values.length} ${type}${and.length ? ' and' : ''}`\n        : '';\n}\nfunction logValues(type, values) {\n    return values.length\n        ? `\\n\\t${type.padStart(7)}: ${values.sort().join(', ')}`\n        : '';\n}\nfunction warn(prefix, type, [added, removed]) {\n    if (added.length || removed.length) {\n        l.warn(`api.${prefix}: Found${logLength('added', added, removed)}${logLength('removed', removed)} ${type}:${logValues('added', added)}${logValues('removed', removed)}`);\n    }\n}\nfunction findSectionExcludes(a, b) {\n    return a.filter((s) => !b.includes(s));\n}\nfunction findSectionIncludes(a, b) {\n    return a.filter((s) => b.includes(s));\n}\nfunction extractSections(src, dst) {\n    const srcSections = Object.keys(src);\n    const dstSections = Object.keys(dst);\n    return [\n        findSectionExcludes(srcSections, dstSections),\n        findSectionExcludes(dstSections, srcSections)\n    ];\n}\nfunction findMethodExcludes(src, dst) {\n    const srcSections = Object.keys(src);\n    const dstSections = findSectionIncludes(Object.keys(dst), srcSections);\n    const excludes = [];\n    for (let s = 0, scount = dstSections.length; s < scount; s++) {\n        const section = dstSections[s];\n        const srcMethods = Object.keys(src[section]);\n        const dstMethods = Object.keys(dst[section]);\n        for (let d = 0, mcount = dstMethods.length; d < mcount; d++) {\n            const method = dstMethods[d];\n            if (!srcMethods.includes(method)) {\n                excludes.push(`${section}.${method}`);\n            }\n        }\n    }\n    return excludes;\n}\nfunction extractMethods(src, dst) {\n    return [\n        findMethodExcludes(dst, src),\n        findMethodExcludes(src, dst)\n    ];\n}\n/**\n * @description Takes a decorated api section (e.g. api.tx) and augment it with the details. It does not override what is\n * already available, but rather just adds new missing items into the result object.\n * @internal\n */\nexport function augmentObject(prefix, src, dst, fromEmpty = false) {\n    fromEmpty && objectClear(dst);\n    // NOTE: This part is slightly problematic since it will get the\n    // values for at least all the sections and the names of the methods\n    // (Since methods won't be decorated before lazy, this _may_ be ok)\n    if (prefix && Object.keys(dst).length) {\n        warn(prefix, 'modules', extractSections(src, dst));\n        warn(prefix, 'calls', extractMethods(src, dst));\n    }\n    const sections = Object.keys(src);\n    for (let i = 0, count = sections.length; i < count; i++) {\n        const section = sections[i];\n        const methods = src[section];\n        // We don't set here with a lazy interface, we decorate based\n        // on the top-level structure (this bypasses adding lazy onto lazy)\n        if (!dst[section]) {\n            dst[section] = {};\n        }\n        lazyMethods(dst[section], Object.keys(methods), (m) => methods[m]);\n    }\n    return dst;\n}\n","/**\n * @name objectClear\n * @summary Removes all the keys from the input object\n */\nexport function objectClear(value) {\n    const keys = Object.keys(value);\n    for (let i = 0, count = keys.length; i < count; i++) {\n        delete value[keys[i]];\n    }\n    return value;\n}\n","import { lazyDeriveSection } from '@polkadot/api-derive';\n/**\n * This is a section decorator which keeps all type information.\n */\nexport function decorateDeriveSections(decorateMethod, derives) {\n    const getKeys = (s) => Object.keys(derives[s]);\n    const creator = (s, m) => decorateMethod(derives[s][m]);\n    const result = {};\n    const names = Object.keys(derives);\n    for (let i = 0, count = names.length; i < count; i++) {\n        lazyDeriveSection(result, names[i], getKeys, creator);\n    }\n    return result;\n}\n","import { isUndefined } from '@polkadot/util';\nfunction sig({ lookup }, { method, section }, args) {\n    return `${section}.${method}(${args.map((a) => lookup.getTypeDef(a).type).join(', ')})`;\n}\nexport function extractStorageArgs(registry, creator, _args) {\n    const args = _args.filter((a) => !isUndefined(a));\n    if (creator.meta.type.isPlain) {\n        if (args.length !== 0) {\n            throw new Error(`${sig(registry, creator, [])} does not take any arguments, ${args.length} found`);\n        }\n    }\n    else {\n        const { hashers, key } = creator.meta.type.asMap;\n        const keys = hashers.length === 1\n            ? [key]\n            : registry.lookup.getSiType(key).def.asTuple.map((t) => t);\n        if (args.length !== keys.length) {\n            throw new Error(`${sig(registry, creator, keys)} is a map, requiring ${keys.length} arguments, ${args.length} found`);\n        }\n    }\n    // pass as tuple\n    return [creator, args];\n}\n","import { EventEmitter } from 'eventemitter3';\nexport class Events {\n    constructor() {\n        this.__internal__eventemitter = new EventEmitter();\n    }\n    emit(type, ...args) {\n        return this.__internal__eventemitter.emit(type, ...args);\n    }\n    /**\n     * @description Attach an eventemitter handler to listen to a specific event\n     *\n     * @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error`\n     * @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments.\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * api.on('connected', (): void => {\n     *   console.log('API has been connected to the endpoint');\n     * });\n     *\n     * api.on('disconnected', (): void => {\n     *   console.log('API has been disconnected from the endpoint');\n     * });\n     * ```\n     */\n    on(type, handler) {\n        this.__internal__eventemitter.on(type, handler);\n        return this;\n    }\n    /**\n     * @description Remove the given eventemitter handler\n     *\n     * @param type The type of event the callback was attached to. Available events are `connected`, `disconnected`, `ready` and `error`\n     * @param handler The callback to unregister.\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * const handler = (): void => {\n     *  console.log('Connected !);\n     * };\n     *\n     * // Start listening\n     * api.on('connected', handler);\n     *\n     * // Stop listening\n     * api.off('connected', handler);\n     * ```\n     */\n    off(type, handler) {\n        this.__internal__eventemitter.removeListener(type, handler);\n        return this;\n    }\n    /**\n     * @description Attach an one-time eventemitter handler to listen to a specific event\n     *\n     * @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error`\n     * @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments.\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * api.once('connected', (): void => {\n     *   console.log('API has been connected to the endpoint');\n     * });\n     *\n     * api.once('disconnected', (): void => {\n     *   console.log('API has been disconnected from the endpoint');\n     * });\n     * ```\n     */\n    once(type, handler) {\n        this.__internal__eventemitter.once(type, handler);\n        return this;\n    }\n}\n","import { BehaviorSubject, combineLatest, from, map, of, switchMap, tap, toArray } from 'rxjs';\nimport { getAvailableDerives } from '@polkadot/api-derive';\nimport { memo, RpcCore } from '@polkadot/rpc-core';\nimport { WsProvider } from '@polkadot/rpc-provider';\nimport { expandMetadata, GenericExtrinsic, typeDefinitions, TypeRegistry } from '@polkadot/types';\nimport { getSpecRuntime } from '@polkadot/types-known';\nimport { arrayChunk, arrayFlatten, assertReturn, BN, compactStripLength, lazyMethod, lazyMethods, logger, nextTick, objectSpread, stringCamelCase, stringUpperFirst, u8aConcatStrict, u8aToHex } from '@polkadot/util';\nimport { blake2AsHex } from '@polkadot/util-crypto';\nimport { createSubmittable } from '../submittable/index.js';\nimport { augmentObject } from '../util/augmentObject.js';\nimport { decorateDeriveSections } from '../util/decorate.js';\nimport { extractStorageArgs } from '../util/validate.js';\nimport { Events } from './Events.js';\nimport { findCall, findError } from './find.js';\nconst PAGE_SIZE_K = 1000; // limit aligned with the 1k on the node (trie lookups are heavy)\nconst PAGE_SIZE_V = 250; // limited since the data may be > 16MB (e.g. misfiring elections)\nconst PAGE_SIZE_Q = 50; // queue of pending storage queries (mapped together, next tick)\nconst l = logger('api/init');\nlet instanceCounter = 0;\nfunction getAtQueryFn(api, { method, section }) {\n    return assertReturn(api.rx.query[section] && api.rx.query[section][method], () => `query.${section}.${method} is not available in this version of the metadata`);\n}\nexport class Decorate extends Events {\n    /**\n     * @description Create an instance of the class\n     *\n     * @param options Options object to create API instance or a Provider instance\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * import Api from '@polkadot/api/promise';\n     *\n     * const api = new Api().isReady();\n     *\n     * api.rpc.subscribeNewHeads((header) => {\n     *   console.log(`new block #${header.number.toNumber()}`);\n     * });\n     * ```\n     */\n    constructor(options, type, decorateMethod) {\n        super();\n        this.__internal__runtimeLog = {};\n        this.__internal__storageGetQ = [];\n        this.__internal__storageSubQ = [];\n        // HACK Use BN import so decorateDerive works... yes, wtf.\n        this.__phantom = new BN(0);\n        this._call = {};\n        this._consts = {};\n        this._errors = {};\n        this._events = {};\n        this._extrinsicType = GenericExtrinsic.LATEST_EXTRINSIC_VERSION;\n        this._isReady = false;\n        this._query = {};\n        this._runtimeMap = {};\n        this._rx = { call: {}, consts: {}, query: {}, tx: {} };\n        /**\n         * Put the `this.onCall` function of ApiRx here, because it is needed by\n         * `api._rx`.\n         */\n        this._rxDecorateMethod = (method) => {\n            return method;\n        };\n        this.__internal__instanceId = `${++instanceCounter}`;\n        this.__internal__registry = options.source?.registry || options.registry || new TypeRegistry();\n        this._rx.callAt = (blockHash, knownVersion) => from(this.at(blockHash, knownVersion)).pipe(map((a) => a.rx.call));\n        this._rx.queryAt = (blockHash, knownVersion) => from(this.at(blockHash, knownVersion)).pipe(map((a) => a.rx.query));\n        this._rx.registry = this.__internal__registry;\n        this._decorateMethod = decorateMethod;\n        this._options = options;\n        this._type = type;\n        const provider = options.source\n            ? options.source._rpcCore.provider.isClonable\n                ? options.source._rpcCore.provider.clone()\n                : options.source._rpcCore.provider\n            : (options.provider || new WsProvider());\n        // The RPC interface decorates the known interfaces on init\n        this._rpcCore = new RpcCore(this.__internal__instanceId, this.__internal__registry, {\n            isPedantic: this._options.isPedantic,\n            provider,\n            userRpc: this._options.rpc\n        });\n        this._isConnected = new BehaviorSubject(this._rpcCore.provider.isConnected);\n        this._rx.hasSubscriptions = this._rpcCore.provider.hasSubscriptions;\n    }\n    /**\n     * @description Return the current used registry\n     */\n    get registry() {\n        return this.__internal__registry;\n    }\n    /**\n     * @description Creates an instance of a type as registered\n     */\n    createType(type, ...params) {\n        return this.__internal__registry.createType(type, ...params);\n    }\n    /**\n     * @description Register additional user-defined of chain-specific types in the type registry\n     */\n    registerTypes(types) {\n        types && this.__internal__registry.register(types);\n    }\n    /**\n     * @returns `true` if the API operates with subscriptions\n     */\n    get hasSubscriptions() {\n        return this._rpcCore.provider.hasSubscriptions;\n    }\n    /**\n     * @returns `true` if the API decorate multi-key queries\n     */\n    get supportMulti() {\n        return this._rpcCore.provider.hasSubscriptions || !!this._rpcCore.state.queryStorageAt;\n    }\n    _emptyDecorated(registry, blockHash) {\n        return {\n            call: {},\n            consts: {},\n            errors: {},\n            events: {},\n            query: {},\n            registry,\n            rx: {\n                call: {},\n                query: {}\n            },\n            tx: createSubmittable(this._type, this._rx, this._decorateMethod, registry, blockHash)\n        };\n    }\n    _createDecorated(registry, fromEmpty, decoratedApi, blockHash) {\n        if (!decoratedApi) {\n            decoratedApi = this._emptyDecorated(registry.registry, blockHash);\n        }\n        if (fromEmpty || !registry.decoratedMeta) {\n            registry.decoratedMeta = expandMetadata(registry.registry, registry.metadata);\n        }\n        const runtime = this._decorateCalls(registry, this._decorateMethod, blockHash);\n        const runtimeRx = this._decorateCalls(registry, this._rxDecorateMethod, blockHash);\n        const storage = this._decorateStorage(registry.decoratedMeta, this._decorateMethod, blockHash);\n        const storageRx = this._decorateStorage(registry.decoratedMeta, this._rxDecorateMethod, blockHash);\n        augmentObject('consts', registry.decoratedMeta.consts, decoratedApi.consts, fromEmpty);\n        augmentObject('errors', registry.decoratedMeta.errors, decoratedApi.errors, fromEmpty);\n        augmentObject('events', registry.decoratedMeta.events, decoratedApi.events, fromEmpty);\n        augmentObject('query', storage, decoratedApi.query, fromEmpty);\n        augmentObject('query', storageRx, decoratedApi.rx.query, fromEmpty);\n        augmentObject('call', runtime, decoratedApi.call, fromEmpty);\n        augmentObject('call', runtimeRx, decoratedApi.rx.call, fromEmpty);\n        decoratedApi.findCall = (callIndex) => findCall(registry.registry, callIndex);\n        decoratedApi.findError = (errorIndex) => findError(registry.registry, errorIndex);\n        decoratedApi.queryMulti = blockHash\n            ? this._decorateMultiAt(decoratedApi, this._decorateMethod, blockHash)\n            : this._decorateMulti(this._decorateMethod);\n        decoratedApi.runtimeVersion = registry.runtimeVersion;\n        return {\n            createdAt: blockHash,\n            decoratedApi,\n            decoratedMeta: registry.decoratedMeta\n        };\n    }\n    _injectMetadata(registry, fromEmpty = false) {\n        // clear the decoration, we are redoing it here\n        if (fromEmpty || !registry.decoratedApi) {\n            registry.decoratedApi = this._emptyDecorated(registry.registry);\n        }\n        const { decoratedApi, decoratedMeta } = this._createDecorated(registry, fromEmpty, registry.decoratedApi);\n        this._call = decoratedApi.call;\n        this._consts = decoratedApi.consts;\n        this._errors = decoratedApi.errors;\n        this._events = decoratedApi.events;\n        this._query = decoratedApi.query;\n        this._rx.call = decoratedApi.rx.call;\n        this._rx.query = decoratedApi.rx.query;\n        const tx = this._decorateExtrinsics(decoratedMeta, this._decorateMethod);\n        const rxtx = this._decorateExtrinsics(decoratedMeta, this._rxDecorateMethod);\n        if (fromEmpty || !this._extrinsics) {\n            this._extrinsics = tx;\n            this._rx.tx = rxtx;\n        }\n        else {\n            augmentObject('tx', tx, this._extrinsics, false);\n            augmentObject(null, rxtx, this._rx.tx, false);\n        }\n        augmentObject(null, decoratedMeta.consts, this._rx.consts, fromEmpty);\n        this.emit('decorated');\n    }\n    /**\n     * @deprecated\n     * backwards compatible endpoint for metadata injection, may be removed in the future (However, it is still useful for testing injection)\n     */\n    injectMetadata(metadata, fromEmpty, registry) {\n        this._injectMetadata({ counter: 0, metadata, registry: registry || this.__internal__registry, runtimeVersion: this.__internal__registry.createType('RuntimeVersionPartial') }, fromEmpty);\n    }\n    _decorateFunctionMeta(input, output) {\n        output.meta = input.meta;\n        output.method = input.method;\n        output.section = input.section;\n        output.toJSON = input.toJSON;\n        if (input.callIndex) {\n            output.callIndex = input.callIndex;\n        }\n        return output;\n    }\n    // Filter all RPC methods based on the results of the rpc_methods call. We do this in the following\n    // manner to cater for both old and new:\n    //   - when the number of entries are 0, only remove the ones with isOptional (account & contracts)\n    //   - when non-zero, remove anything that is not in the array (we don't do this)\n    _filterRpc(methods, additional) {\n        // add any specific user-base RPCs\n        if (Object.keys(additional).length !== 0) {\n            this._rpcCore.addUserInterfaces(additional);\n            // re-decorate, only adding any new additional interfaces\n            this._decorateRpc(this._rpcCore, this._decorateMethod, this._rpc);\n            this._decorateRpc(this._rpcCore, this._rxDecorateMethod, this._rx.rpc);\n        }\n        // extract the actual sections from the methods (this is useful when\n        // we try and create mappings to runtime names via a hash mapping)\n        const sectionMap = {};\n        for (let i = 0, count = methods.length; i < count; i++) {\n            const [section] = methods[i].split('_');\n            sectionMap[section] = true;\n        }\n        // convert the actual section names into an easy name lookup\n        const sections = Object.keys(sectionMap);\n        for (let i = 0, count = sections.length; i < count; i++) {\n            const nameA = stringUpperFirst(sections[i]);\n            const nameB = `${nameA}Api`;\n            this._runtimeMap[blake2AsHex(nameA, 64)] = nameA;\n            this._runtimeMap[blake2AsHex(nameB, 64)] = nameB;\n        }\n        // finally we filter the actual methods to expose\n        this._filterRpcMethods(methods);\n    }\n    _filterRpcMethods(exposed) {\n        const hasResults = exposed.length !== 0;\n        const allKnown = [...this._rpcCore.mapping.entries()];\n        const allKeys = [];\n        const count = allKnown.length;\n        for (let i = 0; i < count; i++) {\n            const [, { alias, endpoint, method, pubsub, section }] = allKnown[i];\n            allKeys.push(`${section}_${method}`);\n            if (pubsub) {\n                allKeys.push(`${section}_${pubsub[1]}`);\n                allKeys.push(`${section}_${pubsub[2]}`);\n            }\n            if (alias) {\n                allKeys.push(...alias);\n            }\n            if (endpoint) {\n                allKeys.push(endpoint);\n            }\n        }\n        const unknown = exposed.filter((k) => !allKeys.includes(k) &&\n            !k.includes('_unstable_'));\n        if (unknown.length && !this._options.noInitWarn) {\n            l.warn(`RPC methods not decorated: ${unknown.join(', ')}`);\n        }\n        // loop through all entries we have (populated in decorate) and filter as required\n        // only remove when we have results and method missing, or with no results if optional\n        for (let i = 0; i < count; i++) {\n            const [k, { method, section }] = allKnown[i];\n            if (hasResults && !exposed.includes(k) && k !== 'rpc_methods') {\n                if (this._rpc[section]) {\n                    delete this._rpc[section][method];\n                    delete this._rx.rpc[section][method];\n                }\n            }\n        }\n    }\n    _rpcSubmitter(decorateMethod) {\n        const method = (method, ...params) => {\n            return from(this._rpcCore.provider.send(method, params));\n        };\n        return decorateMethod(method);\n    }\n    _decorateRpc(rpc, decorateMethod, input = this._rpcSubmitter(decorateMethod)) {\n        const out = input;\n        const decorateFn = (section, method) => {\n            const source = rpc[section][method];\n            const fn = decorateMethod(source, { methodName: method });\n            fn.meta = source.meta;\n            fn.raw = decorateMethod(source.raw, { methodName: method });\n            return fn;\n        };\n        for (let s = 0, scount = rpc.sections.length; s < scount; s++) {\n            const section = rpc.sections[s];\n            if (!Object.prototype.hasOwnProperty.call(out, section)) {\n                const methods = Object.keys(rpc[section]);\n                const decorateInternal = (method) => decorateFn(section, method);\n                for (let m = 0, mcount = methods.length; m < mcount; m++) {\n                    const method = methods[m];\n                    //  skip subscriptions where we have a non-subscribe interface\n                    if (this.hasSubscriptions || !(method.startsWith('subscribe') || method.startsWith('unsubscribe'))) {\n                        if (!Object.prototype.hasOwnProperty.call(out, section)) {\n                            out[section] = {};\n                        }\n                        lazyMethod(out[section], method, decorateInternal);\n                    }\n                }\n            }\n        }\n        return out;\n    }\n    // add all definition entries\n    _addRuntimeDef(result, additional) {\n        if (!additional) {\n            return;\n        }\n        const entries = Object.entries(additional);\n        for (let j = 0, ecount = entries.length; j < ecount; j++) {\n            const [key, defs] = entries[j];\n            if (result[key]) {\n                // we have this one already, step through for new versions or\n                // new methods and add those as applicable\n                for (let k = 0, dcount = defs.length; k < dcount; k++) {\n                    const def = defs[k];\n                    const prev = result[key].find(({ version }) => def.version === version);\n                    if (prev) {\n                        // interleave the new methods with the old - last definition wins\n                        objectSpread(prev.methods, def.methods);\n                    }\n                    else {\n                        // we don't have this specific version, add it\n                        result[key].push(def);\n                    }\n                }\n            }\n            else {\n                // we don't have this runtime definition, add it as-is\n                result[key] = defs;\n            }\n        }\n    }\n    // extract all runtime definitions\n    _getRuntimeDefs(registry, specName, chain = '') {\n        const result = {};\n        const defValues = Object.values(typeDefinitions);\n        // options > chain/spec > built-in, apply in reverse order with\n        // methods overriding previous definitions (or interleave missing)\n        for (let i = 0, count = defValues.length; i < count; i++) {\n            this._addRuntimeDef(result, defValues[i].runtime);\n        }\n        this._addRuntimeDef(result, getSpecRuntime(registry, chain, specName));\n        this._addRuntimeDef(result, this._options.runtime);\n        return Object.entries(result);\n    }\n    // pre-metadata decoration\n    _decorateCalls({ registry, runtimeVersion: { apis, specName, specVersion } }, decorateMethod, blockHash) {\n        const result = {};\n        const named = {};\n        const hashes = {};\n        const sections = this._getRuntimeDefs(registry, specName, this._runtimeChain);\n        const older = [];\n        const implName = `${specName.toString()}/${specVersion.toString()}`;\n        const hasLogged = this.__internal__runtimeLog[implName] || false;\n        this.__internal__runtimeLog[implName] = true;\n        for (let i = 0, scount = sections.length; i < scount; i++) {\n            const [_section, secs] = sections[i];\n            const sectionHash = blake2AsHex(_section, 64);\n            const rtApi = apis.find(([a]) => a.eq(sectionHash));\n            hashes[sectionHash] = true;\n            if (rtApi) {\n                const all = secs.map(({ version }) => version).sort();\n                const sec = secs.find(({ version }) => rtApi[1].eq(version));\n                if (sec) {\n                    const section = stringCamelCase(_section);\n                    const methods = Object.entries(sec.methods);\n                    if (methods.length) {\n                        if (!named[section]) {\n                            named[section] = {};\n                        }\n                        for (let m = 0, mcount = methods.length; m < mcount; m++) {\n                            const [_method, def] = methods[m];\n                            const method = stringCamelCase(_method);\n                            named[section][method] = objectSpread({ method, name: `${_section}_${_method}`, section, sectionHash }, def);\n                        }\n                    }\n                }\n                else {\n                    older.push(`${_section}/${rtApi[1].toString()} (${all.join('/')} known)`);\n                }\n            }\n        }\n        // find the runtimes that we don't have hashes for\n        const notFound = apis\n            .map(([a, v]) => [a.toHex(), v.toString()])\n            .filter(([a]) => !hashes[a])\n            .map(([a, v]) => `${this._runtimeMap[a] || a}/${v}`);\n        if (!this._options.noInitWarn && !hasLogged) {\n            if (older.length) {\n                l.warn(`${implName}: Not decorating runtime apis without matching versions: ${older.join(', ')}`);\n            }\n            if (notFound.length) {\n                l.warn(`${implName}: Not decorating unknown runtime apis: ${notFound.join(', ')}`);\n            }\n        }\n        const stateCall = blockHash\n            ? (name, bytes) => this._rpcCore.state.call(name, bytes, blockHash)\n            : (name, bytes) => this._rpcCore.state.call(name, bytes);\n        const lazySection = (section) => lazyMethods({}, Object.keys(named[section]), (method) => this._decorateCall(registry, named[section][method], stateCall, decorateMethod));\n        const modules = Object.keys(named);\n        for (let i = 0, count = modules.length; i < count; i++) {\n            lazyMethod(result, modules[i], lazySection);\n        }\n        return result;\n    }\n    _decorateCall(registry, def, stateCall, decorateMethod) {\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n        const decorated = decorateMethod((...args) => {\n            if (args.length !== def.params.length) {\n                throw new Error(`${def.name}:: Expected ${def.params.length} arguments, found ${args.length}`);\n            }\n            const bytes = registry.createType('Raw', u8aConcatStrict(args.map((a, i) => registry.createTypeUnsafe(def.params[i].type, [a]).toU8a())));\n            return stateCall(def.name, bytes).pipe(map((r) => registry.createTypeUnsafe(def.type, [r])));\n        });\n        decorated.meta = def;\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n        return decorated;\n    }\n    // only be called if supportMulti is true\n    _decorateMulti(decorateMethod) {\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n        return decorateMethod((keys) => keys.length\n            ? (this.hasSubscriptions\n                ? this._rpcCore.state.subscribeStorage\n                : this._rpcCore.state.queryStorageAt)(keys.map((args) => Array.isArray(args)\n                ? args[0].creator.meta.type.isPlain\n                    ? [args[0].creator]\n                    : args[0].creator.meta.type.asMap.hashers.length === 1\n                        ? [args[0].creator, args.slice(1)]\n                        : [args[0].creator, ...args.slice(1)]\n                : [args.creator]))\n            : of([]));\n    }\n    _decorateMultiAt(atApi, decorateMethod, blockHash) {\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n        return decorateMethod((calls) => calls.length\n            ? this._rpcCore.state.queryStorageAt(calls.map((args) => {\n                if (Array.isArray(args)) {\n                    const { creator } = getAtQueryFn(atApi, args[0].creator);\n                    return creator.meta.type.isPlain\n                        ? [creator]\n                        : creator.meta.type.asMap.hashers.length === 1\n                            ? [creator, args.slice(1)]\n                            : [creator, ...args.slice(1)];\n                }\n                return [getAtQueryFn(atApi, args.creator).creator];\n            }), blockHash)\n            : of([]));\n    }\n    _decorateExtrinsics({ tx }, decorateMethod) {\n        const result = createSubmittable(this._type, this._rx, decorateMethod);\n        const lazySection = (section) => lazyMethods({}, Object.keys(tx[section]), (method) => method.startsWith('$')\n            ? tx[section][method]\n            : this._decorateExtrinsicEntry(tx[section][method], result));\n        const sections = Object.keys(tx);\n        for (let i = 0, count = sections.length; i < count; i++) {\n            lazyMethod(result, sections[i], lazySection);\n        }\n        return result;\n    }\n    _decorateExtrinsicEntry(method, creator) {\n        const decorated = (...params) => creator(method(...params));\n        // pass through the `.is`\n        decorated.is = (other) => method.is(other);\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n        return this._decorateFunctionMeta(method, decorated);\n    }\n    _decorateStorage({ query, registry }, decorateMethod, blockHash) {\n        const result = {};\n        const lazySection = (section) => lazyMethods({}, Object.keys(query[section]), (method) => blockHash\n            ? this._decorateStorageEntryAt(registry, query[section][method], decorateMethod, blockHash)\n            : this._decorateStorageEntry(query[section][method], decorateMethod));\n        const sections = Object.keys(query);\n        for (let i = 0, count = sections.length; i < count; i++) {\n            lazyMethod(result, sections[i], lazySection);\n        }\n        return result;\n    }\n    _decorateStorageEntry(creator, decorateMethod) {\n        const getArgs = (args, registry) => extractStorageArgs(registry || this.__internal__registry, creator, args);\n        const getQueryAt = (blockHash) => from(this.at(blockHash)).pipe(map((api) => getAtQueryFn(api, creator)));\n        // Disable this where it occurs for each field we are decorating\n        /* eslint-disable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */\n        const decorated = this._decorateStorageCall(creator, decorateMethod);\n        decorated.creator = creator;\n        // eslint-disable-next-line deprecation/deprecation\n        decorated.at = decorateMethod((blockHash, ...args) => getQueryAt(blockHash).pipe(switchMap((q) => q(...args))));\n        decorated.hash = decorateMethod((...args) => this._rpcCore.state.getStorageHash(getArgs(args)));\n        decorated.is = (key) => key.section === creator.section &&\n            key.method === creator.method;\n        decorated.key = (...args) => u8aToHex(compactStripLength(creator(...args))[1]);\n        decorated.keyPrefix = (...args) => u8aToHex(creator.keyPrefix(...args));\n        decorated.size = decorateMethod((...args) => this._rpcCore.state.getStorageSize(getArgs(args)));\n        // eslint-disable-next-line deprecation/deprecation\n        decorated.sizeAt = decorateMethod((blockHash, ...args) => getQueryAt(blockHash).pipe(switchMap((q) => this._rpcCore.state.getStorageSize(getArgs(args, q.creator.meta.registry), blockHash))));\n        // .keys() & .entries() only available on map types\n        if (creator.iterKey && creator.meta.type.isMap) {\n            decorated.entries = decorateMethod(memo(this.__internal__instanceId, (...args) => this._retrieveMapEntries(creator, null, args)));\n            // eslint-disable-next-line deprecation/deprecation\n            decorated.entriesAt = decorateMethod(memo(this.__internal__instanceId, (blockHash, ...args) => getQueryAt(blockHash).pipe(switchMap((q) => this._retrieveMapEntries(q.creator, blockHash, args)))));\n            decorated.entriesPaged = decorateMethod(memo(this.__internal__instanceId, (opts) => this._retrieveMapEntriesPaged(creator, undefined, opts)));\n            decorated.keys = decorateMethod(memo(this.__internal__instanceId, (...args) => this._retrieveMapKeys(creator, null, args)));\n            // eslint-disable-next-line deprecation/deprecation\n            decorated.keysAt = decorateMethod(memo(this.__internal__instanceId, (blockHash, ...args) => getQueryAt(blockHash).pipe(switchMap((q) => this._retrieveMapKeys(q.creator, blockHash, args)))));\n            decorated.keysPaged = decorateMethod(memo(this.__internal__instanceId, (opts) => this._retrieveMapKeysPaged(creator, undefined, opts)));\n        }\n        if (this.supportMulti && creator.meta.type.isMap) {\n            // When using double map storage function, user need to pass double map key as an array\n            decorated.multi = decorateMethod((args) => creator.meta.type.asMap.hashers.length === 1\n                ? this._retrieveMulti(args.map((a) => [creator, [a]]))\n                : this._retrieveMulti(args.map((a) => [creator, a])));\n        }\n        /* eslint-enable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */\n        return this._decorateFunctionMeta(creator, decorated);\n    }\n    _decorateStorageEntryAt(registry, creator, decorateMethod, blockHash) {\n        const getArgs = (args) => extractStorageArgs(registry, creator, args);\n        // Disable this where it occurs for each field we are decorating\n        /* eslint-disable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */\n        const decorated = decorateMethod((...args) => this._rpcCore.state.getStorage(getArgs(args), blockHash));\n        decorated.creator = creator;\n        decorated.hash = decorateMethod((...args) => this._rpcCore.state.getStorageHash(getArgs(args), blockHash));\n        decorated.is = (key) => key.section === creator.section &&\n            key.method === creator.method;\n        decorated.key = (...args) => u8aToHex(compactStripLength(creator(...args))[1]);\n        decorated.keyPrefix = (...keys) => u8aToHex(creator.keyPrefix(...keys));\n        decorated.size = decorateMethod((...args) => this._rpcCore.state.getStorageSize(getArgs(args), blockHash));\n        // .keys() & .entries() only available on map types\n        if (creator.iterKey && creator.meta.type.isMap) {\n            decorated.entries = decorateMethod(memo(this.__internal__instanceId, (...args) => this._retrieveMapEntries(creator, blockHash, args)));\n            decorated.entriesPaged = decorateMethod(memo(this.__internal__instanceId, (opts) => this._retrieveMapEntriesPaged(creator, blockHash, opts)));\n            decorated.keys = decorateMethod(memo(this.__internal__instanceId, (...args) => this._retrieveMapKeys(creator, blockHash, args)));\n            decorated.keysPaged = decorateMethod(memo(this.__internal__instanceId, (opts) => this._retrieveMapKeysPaged(creator, blockHash, opts)));\n        }\n        if (this.supportMulti && creator.meta.type.isMap) {\n            // When using double map storage function, user need to pass double map key as an array\n            decorated.multi = decorateMethod((args) => creator.meta.type.asMap.hashers.length === 1\n                ? this._retrieveMulti(args.map((a) => [creator, [a]]), blockHash)\n                : this._retrieveMulti(args.map((a) => [creator, a]), blockHash));\n        }\n        /* eslint-enable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */\n        return this._decorateFunctionMeta(creator, decorated);\n    }\n    _queueStorage(call, queue) {\n        const query = queue === this.__internal__storageSubQ\n            ? this._rpcCore.state.subscribeStorage\n            : this._rpcCore.state.queryStorageAt;\n        let queueIdx = queue.length - 1;\n        let valueIdx = 0;\n        let valueObs;\n        // if we don't have queue entries yet,\n        // or the current queue has fired (see from below),\n        // or the current queue has the max entries,\n        // then we create a new queue\n        if (queueIdx === -1 || !queue[queueIdx] || queue[queueIdx][1].length === PAGE_SIZE_Q) {\n            queueIdx++;\n            valueObs = from(\n            // we delay the execution until the next tick, this allows\n            // any queries made in this timeframe to be added to the same\n            // queue for a single query\n            new Promise((resolve) => {\n                nextTick(() => {\n                    // get all the calls in this instance, resolve with it\n                    // and then clear the queue so we don't add more\n                    // (anything after this will be added to a new queue)\n                    const calls = queue[queueIdx][1];\n                    delete queue[queueIdx];\n                    resolve(calls);\n                });\n            })).pipe(switchMap((calls) => query(calls)));\n            queue.push([valueObs, [call]]);\n        }\n        else {\n            valueObs = queue[queueIdx][0];\n            valueIdx = queue[queueIdx][1].length;\n            queue[queueIdx][1].push(call);\n        }\n        return valueObs.pipe(\n        // return the single value at this index\n        map((values) => values[valueIdx]));\n    }\n    // Decorate the base storage call. In the case or rxjs or promise-without-callback (await)\n    // we make a subscription, alternatively we push this through a single-shot query\n    _decorateStorageCall(creator, decorateMethod) {\n        const memoed = memo(this.__internal__instanceId, (...args) => {\n            const call = extractStorageArgs(this.__internal__registry, creator, args);\n            if (!this.hasSubscriptions) {\n                return this._rpcCore.state.getStorage(call);\n            }\n            return this._queueStorage(call, this.__internal__storageSubQ);\n        });\n        return decorateMethod(memoed, {\n            methodName: creator.method,\n            overrideNoSub: (...args) => this._queueStorage(extractStorageArgs(this.__internal__registry, creator, args), this.__internal__storageGetQ)\n        });\n    }\n    // retrieve a set of values for a specific set of keys - here we chunk the keys into PAGE_SIZE sizes\n    _retrieveMulti(keys, blockHash) {\n        if (!keys.length) {\n            return of([]);\n        }\n        const query = this.hasSubscriptions && !blockHash\n            ? this._rpcCore.state.subscribeStorage\n            : this._rpcCore.state.queryStorageAt;\n        if (keys.length <= PAGE_SIZE_V) {\n            return blockHash\n                ? query(keys, blockHash)\n                : query(keys);\n        }\n        return combineLatest(arrayChunk(keys, PAGE_SIZE_V).map((k) => blockHash\n            ? query(k, blockHash)\n            : query(k))).pipe(map(arrayFlatten));\n    }\n    _retrieveMapKeys({ iterKey, meta, method, section }, at, args) {\n        if (!iterKey || !meta.type.isMap) {\n            throw new Error('keys can only be retrieved on maps');\n        }\n        const headKey = iterKey(...args).toHex();\n        const startSubject = new BehaviorSubject(headKey);\n        const query = at\n            ? (startKey) => this._rpcCore.state.getKeysPaged(headKey, PAGE_SIZE_K, startKey, at)\n            : (startKey) => this._rpcCore.state.getKeysPaged(headKey, PAGE_SIZE_K, startKey);\n        const setMeta = (key) => key.setMeta(meta, section, method);\n        return startSubject.pipe(switchMap(query), map((keys) => keys.map(setMeta)), tap((keys) => nextTick(() => {\n            keys.length === PAGE_SIZE_K\n                ? startSubject.next(keys[PAGE_SIZE_K - 1].toHex())\n                : startSubject.complete();\n        })), toArray(), // toArray since we want to startSubject to be completed\n        map(arrayFlatten));\n    }\n    _retrieveMapKeysPaged({ iterKey, meta, method, section }, at, opts) {\n        if (!iterKey || !meta.type.isMap) {\n            throw new Error('keys can only be retrieved on maps');\n        }\n        const setMeta = (key) => key.setMeta(meta, section, method);\n        const query = at\n            ? (headKey) => this._rpcCore.state.getKeysPaged(headKey, opts.pageSize, opts.startKey || headKey, at)\n            : (headKey) => this._rpcCore.state.getKeysPaged(headKey, opts.pageSize, opts.startKey || headKey);\n        return query(iterKey(...opts.args).toHex()).pipe(map((keys) => keys.map(setMeta)));\n    }\n    _retrieveMapEntries(entry, at, args) {\n        const query = at\n            ? (keys) => this._rpcCore.state.queryStorageAt(keys, at)\n            : (keys) => this._rpcCore.state.queryStorageAt(keys);\n        return this._retrieveMapKeys(entry, at, args).pipe(switchMap((keys) => keys.length\n            ? combineLatest(arrayChunk(keys, PAGE_SIZE_V).map(query)).pipe(map((valsArr) => arrayFlatten(valsArr).map((value, index) => [keys[index], value])))\n            : of([])));\n    }\n    _retrieveMapEntriesPaged(entry, at, opts) {\n        const query = at\n            ? (keys) => this._rpcCore.state.queryStorageAt(keys, at)\n            : (keys) => this._rpcCore.state.queryStorageAt(keys);\n        return this._retrieveMapKeysPaged(entry, at, opts).pipe(switchMap((keys) => keys.length\n            ? query(keys).pipe(map((valsArr) => valsArr.map((value, index) => [keys[index], value])))\n            : of([])));\n    }\n    _decorateDeriveRx(decorateMethod) {\n        const specName = this._runtimeVersion?.specName.toString();\n        // Pull in derive from api-derive\n        const available = getAvailableDerives(this.__internal__instanceId, this._rx, objectSpread({}, this._options.derives, this._options.typesBundle?.spec?.[specName || '']?.derives));\n        return decorateDeriveSections(decorateMethod, available);\n    }\n    _decorateDerive(decorateMethod) {\n        return decorateDeriveSections(decorateMethod, this._rx.derive);\n    }\n}\n","import { Metadata } from '../Metadata.js';\nimport { decorateConstants } from './constants/index.js';\nimport { decorateErrors } from './errors/index.js';\nimport { decorateEvents, filterEventsSome } from './events/index.js';\nimport { decorateExtrinsics, filterCallsSome } from './extrinsics/index.js';\nimport { decorateStorage } from './storage/index.js';\n/**\n * Expands the metadata by decoration into consts, query and tx sections\n */\nexport function expandMetadata(registry, metadata) {\n    if (!(metadata instanceof Metadata)) {\n        throw new Error('You need to pass a valid Metadata instance to Decorated');\n    }\n    const latest = metadata.asLatest;\n    const version = metadata.version;\n    return {\n        consts: decorateConstants(registry, latest, version),\n        errors: decorateErrors(registry, latest, version),\n        events: decorateEvents(registry, latest, version),\n        query: decorateStorage(registry, latest, version),\n        registry,\n        tx: decorateExtrinsics(registry, latest, version)\n    };\n}\nexport { decorateConstants, decorateErrors, decorateEvents, decorateExtrinsics, decorateStorage, filterCallsSome, filterEventsSome };\n","import { firstValueFrom, map, of, switchMap } from 'rxjs';\nimport { Metadata, TypeRegistry } from '@polkadot/types';\nimport { getSpecAlias, getSpecExtensions, getSpecHasher, getSpecRpc, getSpecTypes, getUpgradeVersion } from '@polkadot/types-known';\nimport { assertReturn, BN_ZERO, isUndefined, logger, noop, objectSpread, u8aEq, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { cryptoWaitReady } from '@polkadot/util-crypto';\nimport { Decorate } from './Decorate.js';\nconst KEEPALIVE_INTERVAL = 10000;\nconst WITH_VERSION_SHORTCUT = false;\nconst l = logger('api/init');\nfunction textToString(t) {\n    return t.toString();\n}\nexport class Init extends Decorate {\n    constructor(options, type, decorateMethod) {\n        super(options, type, decorateMethod);\n        this.__internal__atLast = null;\n        this.__internal__healthTimer = null;\n        this.__internal__registries = [];\n        this.__internal__updateSub = null;\n        this.__internal__waitingRegistries = {};\n        // all injected types added to the registry for overrides\n        this.registry.setKnownTypes(options);\n        // We only register the types (global) if this is not a cloned instance.\n        // Do right up-front, so we get in the user types before we are actually\n        // doing anything on-chain, this ensures we have the overrides in-place\n        if (!options.source) {\n            this.registerTypes(options.types);\n        }\n        else {\n            this.__internal__registries = options.source.__internal__registries;\n        }\n        this._rpc = this._decorateRpc(this._rpcCore, this._decorateMethod);\n        this._rx.rpc = this._decorateRpc(this._rpcCore, this._rxDecorateMethod);\n        if (this.supportMulti) {\n            this._queryMulti = this._decorateMulti(this._decorateMethod);\n            this._rx.queryMulti = this._decorateMulti(this._rxDecorateMethod);\n        }\n        this._rx.signer = options.signer;\n        this._rpcCore.setRegistrySwap((blockHash) => this.getBlockRegistry(blockHash));\n        this._rpcCore.setResolveBlockHash((blockNumber) => firstValueFrom(this._rpcCore.chain.getBlockHash(blockNumber)));\n        if (this.hasSubscriptions) {\n            this._rpcCore.provider.on('disconnected', () => this.__internal__onProviderDisconnect());\n            this._rpcCore.provider.on('error', (e) => this.__internal__onProviderError(e));\n            this._rpcCore.provider.on('connected', () => this.__internal__onProviderConnect());\n        }\n        else if (!this._options.noInitWarn) {\n            l.warn('Api will be available in a limited mode since the provider does not support subscriptions');\n        }\n        // If the provider was instantiated earlier, and has already emitted a\n        // 'connected' event, then the `on('connected')` won't fire anymore. To\n        // cater for this case, we call manually `this._onProviderConnect`.\n        if (this._rpcCore.provider.isConnected) {\n            this.__internal__onProviderConnect().catch(noop);\n        }\n    }\n    /**\n     * @description Decorates a registry based on the runtime version\n     */\n    _initRegistry(registry, chain, version, metadata, chainProps) {\n        registry.clearCache();\n        registry.setChainProperties(chainProps || this.registry.getChainProperties());\n        registry.setKnownTypes(this._options);\n        registry.register(getSpecTypes(registry, chain, version.specName, version.specVersion));\n        registry.setHasher(getSpecHasher(registry, chain, version.specName));\n        // for bundled types, pull through the aliases defined\n        if (registry.knownTypes.typesBundle) {\n            registry.knownTypes.typesAlias = getSpecAlias(registry, chain, version.specName);\n        }\n        registry.setMetadata(metadata, undefined, objectSpread({}, getSpecExtensions(registry, chain, version.specName), this._options.signedExtensions), this._options.noInitWarn);\n    }\n    /**\n     * @description Returns the default versioned registry\n     */\n    _getDefaultRegistry() {\n        return assertReturn(this.__internal__registries.find(({ isDefault }) => isDefault), 'Initialization error, cannot find the default registry');\n    }\n    /**\n     * @description Returns a decorated API instance at a specific point in time\n     */\n    async at(blockHash, knownVersion) {\n        const u8aHash = u8aToU8a(blockHash);\n        const u8aHex = u8aToHex(u8aHash);\n        const registry = await this.getBlockRegistry(u8aHash, knownVersion);\n        if (!this.__internal__atLast || this.__internal__atLast[0] !== u8aHex) {\n            // always create a new decoration - since we are pointing to a specific hash, this\n            // means that all queries needs to use that hash (not a previous one already existing)\n            this.__internal__atLast = [u8aHex, this._createDecorated(registry, true, null, u8aHash).decoratedApi];\n        }\n        return this.__internal__atLast[1];\n    }\n    async _createBlockRegistry(blockHash, header, version) {\n        const registry = new TypeRegistry(blockHash);\n        const metadata = new Metadata(registry, await firstValueFrom(this._rpcCore.state.getMetadata.raw(header.parentHash)));\n        const runtimeChain = this._runtimeChain;\n        if (!runtimeChain) {\n            throw new Error('Invalid initializion order, runtimeChain is not available');\n        }\n        this._initRegistry(registry, runtimeChain, version, metadata);\n        // add our new registry\n        const result = { counter: 0, lastBlockHash: blockHash, metadata, registry, runtimeVersion: version };\n        this.__internal__registries.push(result);\n        return result;\n    }\n    _cacheBlockRegistryProgress(key, creator) {\n        // look for waiting resolves\n        let waiting = this.__internal__waitingRegistries[key];\n        if (isUndefined(waiting)) {\n            // nothing waiting, construct new\n            waiting = this.__internal__waitingRegistries[key] = new Promise((resolve, reject) => {\n                creator()\n                    .then((registry) => {\n                    delete this.__internal__waitingRegistries[key];\n                    resolve(registry);\n                })\n                    .catch((error) => {\n                    delete this.__internal__waitingRegistries[key];\n                    reject(error);\n                });\n            });\n        }\n        return waiting;\n    }\n    _getBlockRegistryViaVersion(blockHash, version) {\n        if (version) {\n            // check for pre-existing registries. We also check specName, e.g. it\n            // could be changed like in Westmint with upgrade from shell -> westmint\n            const existingViaVersion = this.__internal__registries.find(({ runtimeVersion: { specName, specVersion } }) => specName.eq(version.specName) &&\n                specVersion.eq(version.specVersion));\n            if (existingViaVersion) {\n                existingViaVersion.counter++;\n                existingViaVersion.lastBlockHash = blockHash;\n                return existingViaVersion;\n            }\n        }\n        return null;\n    }\n    async _getBlockRegistryViaHash(blockHash) {\n        // ensure we have everything required\n        if (!this._genesisHash || !this._runtimeVersion) {\n            throw new Error('Cannot retrieve data on an uninitialized chain');\n        }\n        // We have to assume that on the RPC layer the calls used here does not call back into\n        // the registry swap, so getHeader & getRuntimeVersion should not be historic\n        const header = this.registry.createType('HeaderPartial', this._genesisHash.eq(blockHash)\n            ? { number: BN_ZERO, parentHash: this._genesisHash }\n            : await firstValueFrom(this._rpcCore.chain.getHeader.raw(blockHash)));\n        if (header.parentHash.isEmpty) {\n            throw new Error('Unable to retrieve header and parent from supplied hash');\n        }\n        // get the runtime version, either on-chain or via an known upgrade history\n        const [firstVersion, lastVersion] = getUpgradeVersion(this._genesisHash, header.number);\n        const version = this.registry.createType('RuntimeVersionPartial', WITH_VERSION_SHORTCUT && (firstVersion && (lastVersion ||\n            firstVersion.specVersion.eq(this._runtimeVersion.specVersion)))\n            ? { apis: firstVersion.apis, specName: this._runtimeVersion.specName, specVersion: firstVersion.specVersion }\n            : await firstValueFrom(this._rpcCore.state.getRuntimeVersion.raw(header.parentHash)));\n        return (\n        // try to find via version\n        this._getBlockRegistryViaVersion(blockHash, version) ||\n            // return new or in-flight result\n            await this._cacheBlockRegistryProgress(version.toHex(), () => this._createBlockRegistry(blockHash, header, version)));\n    }\n    /**\n     * @description Sets up a registry based on the block hash defined\n     */\n    async getBlockRegistry(blockHash, knownVersion) {\n        return (\n        // try to find via blockHash\n        this.__internal__registries.find(({ lastBlockHash }) => lastBlockHash && u8aEq(lastBlockHash, blockHash)) ||\n            // try to find via version\n            this._getBlockRegistryViaVersion(blockHash, knownVersion) ||\n            // return new or in-flight result\n            await this._cacheBlockRegistryProgress(u8aToHex(blockHash), () => this._getBlockRegistryViaHash(blockHash)));\n    }\n    async _loadMeta() {\n        // on re-connection to the same chain, we don't want to re-do everything from chain again\n        if (this._isReady) {\n            return true;\n        }\n        this._unsubscribeUpdates();\n        // only load from on-chain if we are not a clone (default path), alternatively\n        // just use the values from the source instance provided\n        [this._genesisHash, this._runtimeMetadata] = this._options.source?._isReady\n            ? await this._metaFromSource(this._options.source)\n            : await this._metaFromChain(this._options.metadata);\n        return this._initFromMeta(this._runtimeMetadata);\n    }\n    // eslint-disable-next-line @typescript-eslint/require-await\n    async _metaFromSource(source) {\n        this._extrinsicType = source.extrinsicVersion;\n        this._runtimeChain = source.runtimeChain;\n        this._runtimeVersion = source.runtimeVersion;\n        // manually build a list of all available methods in this RPC, we are\n        // going to filter on it to align the cloned RPC without making a call\n        const sections = Object.keys(source.rpc);\n        const rpcs = [];\n        for (let s = 0, scount = sections.length; s < scount; s++) {\n            const section = sections[s];\n            const methods = Object.keys(source.rpc[section]);\n            for (let m = 0, mcount = methods.length; m < mcount; m++) {\n                rpcs.push(`${section}_${methods[m]}`);\n            }\n        }\n        this._filterRpc(rpcs, getSpecRpc(this.registry, source.runtimeChain, source.runtimeVersion.specName));\n        return [source.genesisHash, source.runtimeMetadata];\n    }\n    // subscribe to metadata updates, inject the types on changes\n    _subscribeUpdates() {\n        if (this.__internal__updateSub || !this.hasSubscriptions) {\n            return;\n        }\n        this.__internal__updateSub = this._rpcCore.state.subscribeRuntimeVersion().pipe(switchMap((version) => \n        // only retrieve the metadata when the on-chain version has been changed\n        this._runtimeVersion?.specVersion.eq(version.specVersion)\n            ? of(false)\n            : this._rpcCore.state.getMetadata().pipe(map((metadata) => {\n                l.log(`Runtime version updated to spec=${version.specVersion.toString()}, tx=${version.transactionVersion.toString()}`);\n                this._runtimeMetadata = metadata;\n                this._runtimeVersion = version;\n                this._rx.runtimeVersion = version;\n                // update the default registry version\n                const thisRegistry = this._getDefaultRegistry();\n                const runtimeChain = this._runtimeChain;\n                if (!runtimeChain) {\n                    throw new Error('Invalid initializion order, runtimeChain is not available');\n                }\n                // setup the data as per the current versions\n                thisRegistry.metadata = metadata;\n                thisRegistry.runtimeVersion = version;\n                this._initRegistry(this.registry, runtimeChain, version, metadata);\n                this._injectMetadata(thisRegistry, true);\n                return true;\n            })))).subscribe();\n    }\n    async _metaFromChain(optMetadata) {\n        const [genesisHash, runtimeVersion, chain, chainProps, rpcMethods, chainMetadata] = await Promise.all([\n            firstValueFrom(this._rpcCore.chain.getBlockHash(0)),\n            firstValueFrom(this._rpcCore.state.getRuntimeVersion()),\n            firstValueFrom(this._rpcCore.system.chain()),\n            firstValueFrom(this._rpcCore.system.properties()),\n            firstValueFrom(this._rpcCore.rpc.methods()),\n            optMetadata\n                ? Promise.resolve(null)\n                : firstValueFrom(this._rpcCore.state.getMetadata())\n        ]);\n        // set our chain version & genesisHash as returned\n        this._runtimeChain = chain;\n        this._runtimeVersion = runtimeVersion;\n        this._rx.runtimeVersion = runtimeVersion;\n        // retrieve metadata, either from chain  or as pass-in via options\n        const metadataKey = `${genesisHash.toHex() || '0x'}-${runtimeVersion.specVersion.toString()}`;\n        const metadata = chainMetadata || (optMetadata?.[metadataKey]\n            ? new Metadata(this.registry, optMetadata[metadataKey])\n            : await firstValueFrom(this._rpcCore.state.getMetadata()));\n        // initializes the registry & RPC\n        this._initRegistry(this.registry, chain, runtimeVersion, metadata, chainProps);\n        this._filterRpc(rpcMethods.methods.map(textToString), getSpecRpc(this.registry, chain, runtimeVersion.specName));\n        this._subscribeUpdates();\n        // setup the initial registry, when we have none\n        if (!this.__internal__registries.length) {\n            this.__internal__registries.push({ counter: 0, isDefault: true, metadata, registry: this.registry, runtimeVersion });\n        }\n        // get unique types & validate\n        metadata.getUniqTypes(this._options.throwOnUnknown || false);\n        return [genesisHash, metadata];\n    }\n    _initFromMeta(metadata) {\n        const runtimeVersion = this._runtimeVersion;\n        if (!runtimeVersion) {\n            throw new Error('Invalid initializion order, runtimeVersion is not available');\n        }\n        this._extrinsicType = metadata.asLatest.extrinsic.version.toNumber();\n        this._rx.extrinsicType = this._extrinsicType;\n        this._rx.genesisHash = this._genesisHash;\n        this._rx.runtimeVersion = runtimeVersion;\n        // inject metadata and adjust the types as detected\n        this._injectMetadata(this._getDefaultRegistry(), true);\n        // derive is last, since it uses the decorated rx\n        this._rx.derive = this._decorateDeriveRx(this._rxDecorateMethod);\n        this._derive = this._decorateDerive(this._decorateMethod);\n        return true;\n    }\n    _subscribeHealth() {\n        this._unsubscribeHealth();\n        // Only enable the health keepalive on WS, not needed on HTTP\n        this.__internal__healthTimer = this.hasSubscriptions\n            ? setInterval(() => {\n                firstValueFrom(this._rpcCore.system.health.raw()).catch(noop);\n            }, KEEPALIVE_INTERVAL)\n            : null;\n    }\n    _unsubscribeHealth() {\n        if (this.__internal__healthTimer) {\n            clearInterval(this.__internal__healthTimer);\n            this.__internal__healthTimer = null;\n        }\n    }\n    _unsubscribeUpdates() {\n        if (this.__internal__updateSub) {\n            this.__internal__updateSub.unsubscribe();\n            this.__internal__updateSub = null;\n        }\n    }\n    _unsubscribe() {\n        this._unsubscribeHealth();\n        this._unsubscribeUpdates();\n    }\n    async __internal__onProviderConnect() {\n        this._isConnected.next(true);\n        this.emit('connected');\n        try {\n            const cryptoReady = this._options.initWasm === false\n                ? true\n                : await cryptoWaitReady();\n            const hasMeta = await this._loadMeta();\n            this._subscribeHealth();\n            if (hasMeta && !this._isReady && cryptoReady) {\n                this._isReady = true;\n                this.emit('ready', this);\n            }\n        }\n        catch (_error) {\n            const error = new Error(`FATAL: Unable to initialize the API: ${_error.message}`);\n            l.error(error);\n            this.emit('error', error);\n        }\n    }\n    __internal__onProviderDisconnect() {\n        this._isConnected.next(false);\n        this._unsubscribe();\n        this.emit('disconnected');\n    }\n    __internal__onProviderError(error) {\n        this.emit('error', error);\n    }\n}\n","import { isReady, waitReady } from '@polkadot/wasm-crypto';\nexport const cryptoIsReady = isReady;\nexport function cryptoWaitReady() {\n    return waitReady()\n        .then(() => {\n        if (!isReady()) {\n            throw new Error('Unable to initialize @polkadot/util-crypto');\n        }\n        return true;\n    })\n        .catch(() => false);\n}\n","import { packageInfo } from '../packageInfo.js';\nimport { findCall, findError } from './find.js';\nimport { Init } from './Init.js';\nfunction assertResult(value) {\n    if (value === undefined) {\n        throw new Error(\"Api interfaces needs to be initialized before using, wait for 'isReady'\");\n    }\n    return value;\n}\nexport class Getters extends Init {\n    /**\n     * @description Runtime call interfaces (currently untyped, only decorated via API options)\n     */\n    get call() {\n        return assertResult(this._call);\n    }\n    /**\n     * @description Contains the parameter types (constants) of all modules.\n     *\n     * The values are instances of the appropriate type and are accessible using `section`.`constantName`,\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * console.log(api.consts.democracy.enactmentPeriod.toString())\n     * ```\n     */\n    get consts() {\n        return assertResult(this._consts);\n    }\n    /**\n     * @description Derived results that are injected into the API, allowing for combinations of various query results.\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * api.derive.chain.bestNumber((number) => {\n     *   console.log('best number', number);\n     * });\n     * ```\n     */\n    get derive() {\n        return assertResult(this._derive);\n    }\n    /**\n     * @description Errors from metadata\n     */\n    get errors() {\n        return assertResult(this._errors);\n    }\n    /**\n     * @description Events from metadata\n     */\n    get events() {\n        return assertResult(this._events);\n    }\n    /**\n     * @description  Returns the version of extrinsics in-use on this chain\n     */\n    get extrinsicVersion() {\n        return this._extrinsicType;\n    }\n    /**\n     * @description Contains the genesis Hash of the attached chain. Apart from being useful to determine the actual chain, it can also be used to sign immortal transactions.\n     */\n    get genesisHash() {\n        return assertResult(this._genesisHash);\n    }\n    /**\n     * @description true is the underlying provider is connected\n     */\n    get isConnected() {\n        return this._isConnected.getValue();\n    }\n    /**\n     * @description The library information name & version (from package.json)\n     */\n    get libraryInfo() {\n        return `${packageInfo.name} v${packageInfo.version}`;\n    }\n    /**\n     * @description Contains all the chain state modules and their subsequent methods in the API. These are attached dynamically from the runtime metadata.\n     *\n     * All calls inside the namespace, is denoted by `section`.`method` and may take an optional query parameter. As an example, `api.query.timestamp.now()` (current block timestamp) does not take parameters, while `api.query.system.account(<accountId>)` (retrieving the associated nonce & balances for an account), takes the `AccountId` as a parameter.\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * api.query.system.account(<accountId>, ([nonce, balance]) => {\n     *   console.log('new free balance', balance.free, 'new nonce', nonce);\n     * });\n     * ```\n     */\n    get query() {\n        return assertResult(this._query);\n    }\n    /**\n     * @description Allows for the querying of multiple storage entries and the combination thereof into a single result. This is a very optimal way to make multiple queries since it only makes a single connection to the node and retrieves the data over one subscription.\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * const unsub = await api.queryMulti(\n     *   [\n     *     // you can include the storage without any parameters\n     *     api.query.balances.totalIssuance,\n     *     // or you can pass parameters to the storage query\n     *     [api.query.system.account, '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY']\n     *   ],\n     *   ([existential, [, { free }]]) => {\n     *     console.log(`You have ${free.sub(existential)} more than the existential deposit`);\n     *\n     *     unsub();\n     *   }\n     * );\n     * ```\n     */\n    get queryMulti() {\n        return assertResult(this._queryMulti);\n    }\n    /**\n     * @description Contains all the raw rpc sections and their subsequent methods in the API as defined by the jsonrpc interface definitions. Unlike the dynamic `api.query` and `api.tx` sections, these methods are fixed (although extensible with node upgrades) and not determined by the runtime.\n     *\n     * RPC endpoints available here allow for the query of chain, node and system information, in addition to providing interfaces for the raw queries of state (using known keys) and the submission of transactions.\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * api.rpc.chain.subscribeNewHeads((header) => {\n     *   console.log('new header', header);\n     * });\n     * ```\n     */\n    get rpc() {\n        return assertResult(this._rpc);\n    }\n    /**\n     * @description Contains the chain information for the current node.\n     */\n    get runtimeChain() {\n        return assertResult(this._runtimeChain);\n    }\n    /**\n     * @description Yields the current attached runtime metadata. Generally this is only used to construct extrinsics & storage, but is useful for current runtime inspection.\n     */\n    get runtimeMetadata() {\n        return assertResult(this._runtimeMetadata);\n    }\n    /**\n     * @description Contains the version information for the current runtime.\n     */\n    get runtimeVersion() {\n        return assertResult(this._runtimeVersion);\n    }\n    /**\n     * @description The underlying Rx API interface\n     */\n    get rx() {\n        return assertResult(this._rx);\n    }\n    /**\n     * @description Returns the underlying provider stats\n     */\n    get stats() {\n        return this._rpcCore.stats;\n    }\n    /**\n     * @description The type of this API instance, either 'rxjs' or 'promise'\n     */\n    get type() {\n        return this._type;\n    }\n    /**\n     * @description Contains all the extrinsic modules and their subsequent methods in the API. It allows for the construction of transactions and the submission thereof. These are attached dynamically from the runtime metadata.\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * api.tx.balances\n     *   .transfer(<recipientId>, <balance>)\n     *   .signAndSend(<keyPair>, ({status}) => {\n     *     console.log('tx status', status.asFinalized.toHex());\n     *   });\n     * ```\n     */\n    get tx() {\n        return assertResult(this._extrinsics);\n    }\n    /**\n     * @description Finds the definition for a specific [[CallFunction]] based on the index supplied\n     */\n    findCall(callIndex) {\n        return findCall(this.registry, callIndex);\n    }\n    /**\n     * @description Finds the definition for a specific [[RegistryError]] based on the index supplied\n     */\n    findError(errorIndex) {\n        return findError(this.registry, errorIndex);\n    }\n}\n","import { isString, objectSpread, u8aToHex, u8aToU8a } from '@polkadot/util';\nimport { Getters } from './Getters.js';\nexport class ApiBase extends Getters {\n    /**\n     * @description Create an instance of the class\n     *\n     * @param options Options object to create API instance or a Provider instance\n     *\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * import Api from '@polkadot/api/promise';\n     *\n     * const api = new Api().isReady();\n     *\n     * api.rpc.subscribeNewHeads((header) => {\n     *   console.log(`new block #${header.number.toNumber()}`);\n     * });\n     * ```\n     */\n    constructor(options = {}, type, decorateMethod) {\n        super(options, type, decorateMethod);\n    }\n    /**\n     * @description Connect from the underlying provider, halting all network traffic\n     */\n    connect() {\n        return this._rpcCore.connect();\n    }\n    /**\n     * @description Disconnect from the underlying provider, halting all network traffic\n     */\n    disconnect() {\n        this._unsubscribe();\n        return this._rpcCore.disconnect();\n    }\n    /**\n     * @description Set an external signer which will be used to sign extrinsic when account passed in is not KeyringPair\n     */\n    setSigner(signer) {\n        this._rx.signer = signer;\n    }\n    /**\n     * @description Signs a raw signer payload, string or Uint8Array\n     */\n    async sign(address, data, { signer } = {}) {\n        if (isString(address)) {\n            const _signer = signer || this._rx.signer;\n            if (!_signer?.signRaw) {\n                throw new Error('No signer exists with a signRaw interface. You possibly need to pass through an explicit keypair for the origin so it can be used for signing.');\n            }\n            return (await _signer.signRaw(objectSpread({ type: 'bytes' }, data, { address }))).signature;\n        }\n        return u8aToHex(address.sign(u8aToU8a(data.data)));\n    }\n}\n","import { isFunction, noop } from '@polkadot/util';\nexport class Combinator {\n    constructor(fns, callback) {\n        this.__internal__allHasFired = false;\n        this.__internal__fired = [];\n        this.__internal__fns = [];\n        this.__internal__isActive = true;\n        this.__internal__results = [];\n        this.__internal__subscriptions = [];\n        this.__internal__callback = callback;\n        // eslint-disable-next-line @typescript-eslint/require-await\n        this.__internal__subscriptions = fns.map(async (input, index) => {\n            const [fn, ...args] = Array.isArray(input)\n                ? input\n                : [input];\n            this.__internal__fired.push(false);\n            this.__internal__fns.push(fn);\n            // Not quite 100% how to have a variable number at the front here\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/ban-types\n            return fn(...args, this._createCallback(index));\n        });\n    }\n    _allHasFired() {\n        this.__internal__allHasFired ||= this.__internal__fired.filter((hasFired) => !hasFired).length === 0;\n        return this.__internal__allHasFired;\n    }\n    _createCallback(index) {\n        return (value) => {\n            this.__internal__fired[index] = true;\n            this.__internal__results[index] = value;\n            this._triggerUpdate();\n        };\n    }\n    _triggerUpdate() {\n        if (!this.__internal__isActive || !isFunction(this.__internal__callback) || !this._allHasFired()) {\n            return;\n        }\n        try {\n            Promise\n                .resolve(this.__internal__callback(this.__internal__results))\n                .catch(noop);\n        }\n        catch {\n            // swallow, we don't want the handler to trip us up\n        }\n    }\n    unsubscribe() {\n        if (!this.__internal__isActive) {\n            return;\n        }\n        this.__internal__isActive = false;\n        this.__internal__subscriptions.map(async (subscription) => {\n            try {\n                const unsubscribe = await subscription;\n                if (isFunction(unsubscribe)) {\n                    unsubscribe();\n                }\n            }\n            catch {\n                // ignore\n            }\n        });\n    }\n}\n","import { catchError, EMPTY, tap } from 'rxjs';\nimport { isFunction, nextTick } from '@polkadot/util';\nexport function promiseTracker(resolve, reject) {\n    let isCompleted = false;\n    return {\n        reject: (error) => {\n            if (!isCompleted) {\n                isCompleted = true;\n                reject(error);\n            }\n            return EMPTY;\n        },\n        resolve: (value) => {\n            if (!isCompleted) {\n                isCompleted = true;\n                resolve(value);\n            }\n        }\n    };\n}\nfunction extractArgs(args, needsCallback) {\n    const actualArgs = args.slice();\n    // If the last arg is a function, we pop it, put it into callback.\n    // actualArgs will then hold the actual arguments to be passed to `method`\n    const callback = (args.length && isFunction(args[args.length - 1]))\n        ? actualArgs.pop()\n        : undefined;\n    // When we need a subscription, ensure that a valid callback is actually passed\n    if (needsCallback && !isFunction(callback)) {\n        throw new Error('Expected a callback to be passed with subscriptions');\n    }\n    return [actualArgs, callback];\n}\nfunction decorateCall(method, args) {\n    return new Promise((resolve, reject) => {\n        // single result tracker - either reject with Error or resolve with Codec result\n        const tracker = promiseTracker(resolve, reject);\n        // encoding errors reject immediately, any result unsubscribes and resolves\n        const subscription = method(...args)\n            .pipe(catchError((error) => tracker.reject(error)))\n            .subscribe((result) => {\n            tracker.resolve(result);\n            nextTick(() => subscription.unsubscribe());\n        });\n    });\n}\nfunction decorateSubscribe(method, args, resultCb) {\n    return new Promise((resolve, reject) => {\n        // either reject with error or resolve with unsubscribe callback\n        const tracker = promiseTracker(resolve, reject);\n        // errors reject immediately, the first result resolves with an unsubscribe promise, all results via callback\n        const subscription = method(...args)\n            .pipe(catchError((error) => tracker.reject(error)), tap(() => tracker.resolve(() => subscription.unsubscribe())))\n            .subscribe((result) => {\n            // queue result (back of queue to clear current)\n            nextTick(() => resultCb(result));\n        });\n    });\n}\n/**\n * @description Decorate method for ApiPromise, where the results are converted to the Promise equivalent\n */\nexport function toPromiseMethod(method, options) {\n    const needsCallback = !!(options?.methodName && options.methodName.includes('subscribe'));\n    return function (...args) {\n        const [actualArgs, resultCb] = extractArgs(args, needsCallback);\n        return resultCb\n            ? decorateSubscribe(method, actualArgs, resultCb)\n            : decorateCall(options?.overrideNoSub || method, actualArgs);\n    };\n}\n","import { noop, objectSpread } from '@polkadot/util';\nimport { ApiBase } from '../base/index.js';\nimport { Combinator } from './Combinator.js';\nimport { promiseTracker, toPromiseMethod } from './decorateMethod.js';\n/**\n * # @polkadot/api/promise\n *\n * ## Overview\n *\n * @name ApiPromise\n * @description\n * ApiPromise is a standard JavaScript wrapper around the RPC and interfaces on the Polkadot network. As a full Promise-based, all interface calls return Promises, including the static `.create(...)`. Subscription calls utilise `(value) => {}` callbacks to pass through the latest values.\n *\n * The API is well suited to real-time applications where either the single-shot state is needed or use is to be made of the subscription-based features of Polkadot (and Substrate) clients.\n *\n * @see [[ApiRx]]\n *\n * ## Usage\n *\n * Making rpc calls -\n * <BR>\n *\n * ```javascript\n * import ApiPromise from '@polkadot/api/promise';\n *\n * // initialise via static create\n * const api = await ApiPromise.create();\n *\n * // make a subscription to the network head\n * api.rpc.chain.subscribeNewHeads((header) => {\n *   console.log(`Chain is at #${header.number}`);\n * });\n * ```\n * <BR>\n *\n * Subscribing to chain state -\n * <BR>\n *\n * ```javascript\n * import { ApiPromise, WsProvider } from '@polkadot/api';\n *\n * // initialise a provider with a specific endpoint\n * const provider = new WsProvider('wss://example.com:9944')\n *\n * // initialise via isReady & new with specific provider\n * const api = await new ApiPromise({ provider }).isReady;\n *\n * // retrieve the block target time\n * const blockPeriod = await api.query.timestamp.blockPeriod().toNumber();\n * let last = 0;\n *\n * // subscribe to the current block timestamp, updates automatically (callback provided)\n * api.query.timestamp.now((timestamp) => {\n *   const elapsed = last\n *     ? `, ${timestamp.toNumber() - last}s since last`\n *     : '';\n *\n *   last = timestamp.toNumber();\n *   console.log(`timestamp ${timestamp}${elapsed} (${blockPeriod}s target)`);\n * });\n * ```\n * <BR>\n *\n * Submitting a transaction -\n * <BR>\n *\n * ```javascript\n * import ApiPromise from '@polkadot/api/promise';\n *\n * ApiPromise.create().then((api) => {\n *   const [nonce] = await api.query.system.account(keyring.alice.address);\n *\n *   api.tx.balances\n *     // create transfer\n *     transfer(keyring.bob.address, 12345)\n *     // sign the transcation\n *     .sign(keyring.alice, { nonce })\n *     // send the transaction (optional status callback)\n *     .send((status) => {\n *       console.log(`current status ${status.type}`);\n *     })\n *     // retrieve the submitted extrinsic hash\n *     .then((hash) => {\n *       console.log(`submitted with hash ${hash}`);\n *     });\n * });\n * ```\n */\nexport class ApiPromise extends ApiBase {\n    /**\n     * @description Creates an instance of the ApiPromise class\n     * @param options Options to create an instance. This can be either [[ApiOptions]] or\n     * an [[WsProvider]].\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * import Api from '@polkadot/api/promise';\n     *\n     * new Api().isReady.then((api) => {\n     *   api.rpc.subscribeNewHeads((header) => {\n     *     console.log(`new block #${header.number.toNumber()}`);\n     *   });\n     * });\n     * ```\n     */\n    constructor(options) {\n        super(options, 'promise', toPromiseMethod);\n        this.__internal__isReadyPromise = new Promise((resolve) => {\n            super.once('ready', () => resolve(this));\n        });\n        this.__internal__isReadyOrErrorPromise = new Promise((resolve, reject) => {\n            const tracker = promiseTracker(resolve, reject);\n            super.once('ready', () => tracker.resolve(this));\n            super.once('error', (error) => tracker.reject(error));\n        });\n    }\n    /**\n     * @description Creates an ApiPromise instance using the supplied provider. Returns an Promise containing the actual Api instance.\n     * @param options options that is passed to the class contructor. Can be either [[ApiOptions]] or a\n     * provider (see the constructor arguments)\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * import Api from '@polkadot/api/promise';\n     *\n     * Api.create().then(async (api) => {\n     *   const timestamp = await api.query.timestamp.now();\n     *\n     *   console.log(`lastest block timestamp ${timestamp}`);\n     * });\n     * ```\n     */\n    static create(options) {\n        const instance = new ApiPromise(options);\n        if (options && options.throwOnConnect) {\n            return instance.isReadyOrError;\n        }\n        // Swallow any rejections on isReadyOrError\n        // (in Node 15.x this creates issues, when not being looked at)\n        instance.isReadyOrError.catch(noop);\n        return instance.isReady;\n    }\n    /**\n     * @description Promise that resolves the first time we are connected and loaded\n     */\n    get isReady() {\n        return this.__internal__isReadyPromise;\n    }\n    /**\n     * @description Promise that resolves if we can connect, or reject if there is an error\n     */\n    get isReadyOrError() {\n        return this.__internal__isReadyOrErrorPromise;\n    }\n    /**\n     * @description Returns a clone of this ApiPromise instance (new underlying provider connection)\n     */\n    clone() {\n        return new ApiPromise(objectSpread({}, this._options, { source: this }));\n    }\n    /**\n     * @description Creates a combinator that can be used to combine the latest results from multiple subscriptions\n     * @param fns An array of function to combine, each in the form of `(cb: (value: void)) => void`\n     * @param callback A callback that will return an Array of all the values this combinator has been applied to\n     * @example\n     * <BR>\n     *\n     * ```javascript\n     * const address = '5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFacT7';\n     *\n     * // combines values from balance & nonce as it updates\n     * api.combineLatest([\n     *   api.rpc.chain.subscribeNewHeads,\n     *   (cb) => api.query.system.account(address, cb)\n     * ], ([head, [balance, nonce]]) => {\n     *   console.log(`#${head.number}: You have ${balance.free} units, with ${nonce} transactions sent`);\n     * });\n     * ```\n     */\n    // eslint-disable-next-line @typescript-eslint/require-await\n    async combineLatest(fns, callback) {\n        const combinator = new Combinator(fns, callback);\n        return () => {\n            combinator.unsubscribe();\n        };\n    }\n}\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nexport const types8 = {\n    DispatchError: 'DispatchErrorPre6First',\n    AccountInfo: 'AccountInfoWithDualRefCount',\n    Address: 'AccountId',\n    Attestation: {\n        ctypeHash: 'Hash',\n        attester: 'AccountId',\n        delegationId: 'Option<DelegationNodeId>',\n        revoked: 'bool',\n    },\n    Balance: 'u128',\n    DelegationNode: {\n        rootId: 'DelegationNodeId',\n        parent: 'Option<DelegationNodeId>',\n        owner: 'AccountId',\n        permissions: 'Permissions',\n        revoked: 'bool',\n    },\n    DelegationNodeId: 'Hash',\n    DelegationRoot: {\n        ctypeHash: 'Hash',\n        owner: 'AccountId',\n        revoked: 'bool',\n    },\n    DidRecord: {\n        signKey: 'Hash',\n        boxKey: 'Hash',\n        docRef: 'Option<Vec<u8>>',\n    },\n    Index: 'u64',\n    LookupSource: 'AccountId',\n    Permissions: 'u32',\n    PublicBoxKey: 'Hash',\n    PublicSigningKey: 'Hash',\n    Signature: 'MultiSignature',\n    XCurrencyId: {\n        chainId: 'ChainId',\n        currencyId: 'Vec<u8>',\n    },\n    ChainId: {\n        _enum: {\n            RelayChain: 'Null',\n            ParaChain: 'ParaId',\n        },\n    },\n    CurrencyIdOf: 'CurrencyId',\n    CurrencyId: {\n        _enum: {\n            DOT: 0,\n            KSM: 1,\n            KILT: 2,\n        },\n    },\n    XcmError: {\n        _enum: {\n            Undefined: 0,\n            Unimplemented: 1,\n            UnhandledXcmVersion: 2,\n            UnhandledXcmMessage: 3,\n            UnhandledEffect: 4,\n            EscalationOfPrivilege: 5,\n            UntrustedReserveLocation: 6,\n            UntrustedTeleportLocation: 7,\n            DestinationBufferOverflow: 8,\n            CannotReachDestination: 9,\n            MultiLocationFull: 10,\n            FailedToDecode: 11,\n            BadOrigin: 12,\n            ExceedsMaxMessageSize: 13,\n            FailedToTransactAsset: 14,\n        },\n    },\n    ReferendumInfo: {\n        _enum: {\n            Ongoing: 'ReferendumStatus',\n            Finished: 'ReferendumInfoFinished',\n        },\n    },\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nexport const types10 = {\n    // Runtime\n    DispatchError: 'DispatchErrorPre6First',\n    AccountInfo: 'AccountInfoWithTripleRefCount',\n    Address: 'MultiAddress',\n    AmountOf: 'i128',\n    Balance: 'u128',\n    BlockNumber: 'u64',\n    Index: 'u64',\n    LookupSource: 'MultiAddress',\n    // Ctypes\n    CtypeCreatorOf: 'AccountId',\n    CtypeHashOf: 'Hash',\n    ClaimHashOf: 'Hash',\n    // Attestations\n    AttesterOf: 'AccountId',\n    AttestationDetails: {\n        ctypeHash: 'CtypeHashOf',\n        attester: 'AttesterOf',\n        delegationId: 'Option<DelegationNodeIdOf>',\n        revoked: 'bool',\n    },\n    // Delegations\n    Permissions: 'u32',\n    DelegationNodeIdOf: 'Hash',\n    DelegatorIdOf: 'AccountId',\n    DelegateSignatureTypeOf: 'Vec<u8>',\n    DelegationRoot: {\n        ctypeHash: 'CtypeHashOf',\n        owner: 'DelegatorIdOf',\n        revoked: 'bool',\n    },\n    DelegationNode: {\n        rootId: 'DelegationNodeIdOf',\n        parent: 'Option<DelegationNodeIdOf>',\n        owner: 'DelegatorIdOf',\n        permissions: 'Permissions',\n        revoked: 'bool',\n    },\n    // DIDs\n    KeyIdOf: 'Hash',\n    DidIdentifierOf: 'AccountId',\n    AccountIdentifierOf: 'AccountId',\n    BlockNumberOf: 'BlockNumber',\n    DidCallableOf: 'Call',\n    DidVerificationKey: {\n        _enum: {\n            Ed25519: '[u8; 32]',\n            Sr25519: '[u8; 32]',\n        },\n    },\n    DidEncryptionKey: {\n        _enum: {\n            X25519: '[u8; 32]',\n        },\n    },\n    DidPublicKey: {\n        _enum: {\n            PublicVerificationKey: 'DidVerificationKey',\n            PublicEncryptionKey: 'DidEncryptionKey',\n        },\n    },\n    DidVerificationKeyRelationship: {\n        _enum: [\n            'Authentication',\n            'CapabilityDelegation',\n            'CapabilityInvocation',\n            'AssertionMethod',\n        ],\n    },\n    DidSignature: {\n        _enum: {\n            Ed25519: 'Ed25519Signature',\n            Sr25519: 'Sr25519Signature',\n        },\n    },\n    DidError: {\n        _enum: {\n            StorageError: 'StorageError',\n            SignatureError: 'SignatureError',\n            UrlError: 'UrlError',\n            InputError: 'InputError',\n            InternalError: 'Null',\n        },\n    },\n    StorageError: {\n        _enum: {\n            DidAlreadyPresent: 'Null',\n            DidNotPresent: 'Null',\n            DidKeyNotPresent: 'DidVerificationKeyRelationship',\n            VerificationKeyNotPresent: 'Null',\n            CurrentlyActiveKey: 'Null',\n            MaxTxCounterValue: 'Null',\n        },\n    },\n    SignatureError: {\n        _enum: ['InvalidSignatureFormat', 'InvalidSignature', 'InvalidNonce'],\n    },\n    KeyError: {\n        _enum: ['InvalidVerificationKeyFormat', 'InvalidEncryptionKeyFormat'],\n    },\n    UrlError: {\n        _enum: ['InvalidUrlEncoding', 'InvalidUrlScheme'],\n    },\n    InputError: {\n        _enum: [\n            'MaxKeyAgreementKeysLimitExceeded',\n            'MaxVerificationKeysToRemoveLimitExceeded',\n            'MaxUrlLengthExceeded',\n        ],\n    },\n    DidPublicKeyDetails: {\n        key: 'DidPublicKey',\n        blockNumber: 'BlockNumberOf',\n    },\n    DidDetails: {\n        authenticationKey: 'KeyIdOf',\n        keyAgreementKeys: 'BTreeSet<KeyIdOf>',\n        delegationKey: 'Option<KeyIdOf>',\n        attestationKey: 'Option<KeyIdOf>',\n        publicKeys: 'BTreeMap<KeyIdOf, DidPublicKeyDetails>',\n        endpointUrl: 'Option<Url>',\n        lastTxCounter: 'u64',\n    },\n    DidCreationOperation: {\n        did: 'DidIdentifierOf',\n        newAuthenticationKey: 'DidVerificationKey',\n        newKeyAgreementKeys: 'BTreeSet<DidEncryptionKey>',\n        newAttestationKey: 'Option<DidVerificationKey>',\n        newDelegationKey: 'Option<DidVerificationKey>',\n        newEndpointUrl: 'Option<Url>',\n    },\n    DidUpdateOperation: {\n        did: 'DidIdentifierOf',\n        newAuthenticationKey: 'Option<DidVerificationKey>',\n        newKeyAgreementKeys: 'BTreeSet<DidEncryptionKey>',\n        attestationKeyUpdate: 'DidVerificationKeyUpdateAction',\n        delegationKeyUpdate: 'DidVerificationKeyUpdateAction',\n        publicKeysToRemove: 'BTreeSet<KeyIdOf>',\n        newEndpointUrl: 'Option<Url>',\n        txCounter: 'u64',\n    },\n    DidVerificationKeyUpdateAction: {\n        _enum: {\n            Ignore: 'Null',\n            Change: 'DidVerificationKey',\n            Delete: 'Null',\n        },\n    },\n    DidDeletionOperation: {\n        did: 'DidIdentifierOf',\n        txCounter: 'u64',\n    },\n    DidAuthorizedCallOperation: {\n        did: 'DidIdentifierOf',\n        txCounter: 'u64',\n        call: 'DidCallableOf',\n    },\n    HttpUrl: {\n        payload: 'Text',\n    },\n    FtpUrl: {\n        payload: 'Text',\n    },\n    IpfsUrl: {\n        payload: 'Text',\n    },\n    Url: {\n        _enum: {\n            Http: 'HttpUrl',\n            Ftp: 'FtpUrl',\n            Ipfs: 'IpfsUrl',\n        },\n    },\n    // LaunchPallet\n    LockedBalance: {\n        block: 'BlockNumber',\n        amount: 'Balance',\n    },\n    // Staking\n    BalanceOf: 'Balance',\n    RoundInfo: {\n        current: 'SessionIndex',\n        first: 'BlockNumber',\n        length: 'BlockNumber',\n    },\n    OrderedSet: 'Vec<Stake>',\n    Stake: {\n        owner: 'AccountId',\n        amount: 'Balance',\n    },\n    TotalStake: {\n        collators: 'Balance',\n        delegators: 'Balance',\n    },\n    InflationInfo: {\n        collator: 'StakingInfo',\n        delegator: 'StakingInfo',\n    },\n    StakingInfo: {\n        maxRate: 'Perquintill',\n        rewardRate: 'RewardRate',\n    },\n    RewardRate: {\n        annual: 'Perquintill',\n        perBlock: 'Perquintill',\n    },\n    Delegator: {\n        delegations: 'Vec<Stake>',\n        total: 'Balance',\n    },\n    CollatorSnapshot: {\n        stake: 'Balance',\n        delegators: 'Vec<Stake>',\n        total: 'Balance',\n    },\n    Collator: {\n        id: 'AccountId',\n        stake: 'Balance',\n        delegators: 'Vec<Stake>',\n        total: 'Balance',\n        state: 'CollatorStatus',\n    },\n    CollatorStatus: {\n        _enum: {\n            Active: 'Null',\n            Leaving: 'SessionIndex',\n        },\n    },\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { types10 } from './types_10.js';\nexport const types12 = {\n    ...types10,\n    // Staking updated types\n    DelegationCounter: {\n        round: 'SessionIndex',\n        counter: 'u32',\n    },\n    // DID updated types\n    DidVerificationKey: {\n        _enum: {\n            Ed25519: '[u8; 32]',\n            Sr25519: '[u8; 32]',\n            Secp256k1: '[u8; 33]',\n        },\n    },\n    DidSignature: {\n        _enum: {\n            Ed25519: 'Ed25519Signature',\n            Sr25519: 'Sr25519Signature',\n            'Ecdsa-Secp256k1': 'EcdsaSignature',\n        },\n    },\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { types12 } from './types_12.js';\nexport const types17 = {\n    ...types12,\n    // Delegation updated types\n    DelegationNode: {\n        hierarchyRootId: 'DelegationNodeIdOf',\n        parent: 'Option<DelegationNodeIdOf>',\n        children: 'BTreeSet<DelegationNodeIdOf>',\n        details: 'DelegationDetails',\n    },\n    DelegationDetails: {\n        owner: 'DelegatorIdOf',\n        revoked: 'bool',\n        permissions: 'Permissions',\n    },\n    DelegationHierarchyDetails: {\n        ctypeHash: 'CtypeHashOf',\n    },\n    DelegationStorageVersion: {\n        _enum: ['V1', 'V2'],\n    },\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\n/**\n * Removes parts of the type definition without altering the original object.\n *\n * @param oldTypes The old types that should be updated.\n * @param newTypes The new types that will be merged with the old types. Types with the same key will be overwritten by the new types.\n * @param deleteKeys Keys that will get removed from the new and old types.\n * @returns The adjusted types.\n */\nexport function mergeType(oldTypes, newTypes, deleteKeys) {\n    const adjustedTypes = { ...oldTypes, ...newTypes };\n    deleteKeys.forEach((key) => {\n        delete adjustedTypes[key];\n    });\n    return adjustedTypes;\n}\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { mergeType } from './mergeType.js';\nimport { types17 } from './types_17.js';\nexport const types18 = mergeType(\n// Use the old types as the base of the new types.\ntypes17, \n// We add these new type:\n{\n    // DID management update\n    DidCreationDetails: {\n        did: 'DidIdentifierOf',\n        newKeyAgreementKeys: 'BTreeSet<DidEncryptionKey>',\n        newAttestationKey: 'Option<DidVerificationKey>',\n        newDelegationKey: 'Option<DidVerificationKey>',\n        newEndpointUrl: 'Option<Url>',\n    },\n    DidUpdateDetails: {\n        newAuthenticationKey: 'Option<DidVerificationKey>',\n        newKeyAgreementKeys: 'BTreeSet<DidEncryptionKey>',\n        attestationKeyUpdate: 'DidVerificationKeyUpdateAction',\n        delegationKeyUpdate: 'DidVerificationKeyUpdateAction',\n        publicKeysToRemove: 'BTreeSet<KeyIdOf>',\n        newEndpointUrl: 'Option<Url>',\n    },\n}, \n// Remove old DID types\n['DidCreationOperation', 'DidUpdateOperation', 'DidDeletionOperation']);\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { mergeType } from './mergeType.js';\nimport { types18 } from './types_18.js';\nexport const types19 = mergeType(\n// Use the old types as the base of the new types.\ntypes18, \n// We add these new type:\n{\n    ServiceEndpoints: {\n        contentHash: 'Hash',\n        urls: 'Vec<Url>',\n        contentType: 'ContentType',\n    },\n    DidFragmentUpdateAction_ServiceEndpoints: {\n        _enum: {\n            Ignore: 'Null',\n            Change: 'ServiceEndpoints',\n            Delete: 'Null',\n        },\n    },\n    DidFragmentUpdateAction_DidVerificationKey: {\n        _enum: {\n            Ignore: 'Null',\n            Change: 'DidVerificationKey',\n            Delete: 'Null',\n        },\n    },\n    ContentType: {\n        _enum: ['ApplicationJson', 'ApplicationJsonLd'],\n    },\n    // Updated types\n    DidCreationDetails: {\n        did: 'DidIdentifierOf',\n        newKeyAgreementKeys: 'BTreeSet<DidEncryptionKey>',\n        newAttestationKey: 'Option<DidVerificationKey>',\n        newDelegationKey: 'Option<DidVerificationKey>',\n        newServiceEndpoints: 'Option<ServiceEndpoints>',\n    },\n    DidUpdateDetails: {\n        newAuthenticationKey: 'Option<DidVerificationKey>',\n        newKeyAgreementKeys: 'BTreeSet<DidEncryptionKey>',\n        attestationKeyUpdate: 'DidFragmentUpdateAction_DidVerificationKey',\n        delegationKeyUpdate: 'DidFragmentUpdateAction_DidVerificationKey',\n        publicKeysToRemove: 'BTreeSet<KeyIdOf>',\n        serviceEndpointsUpdate: 'DidFragmentUpdateAction_ServiceEndpoints',\n    },\n    DidDetails: {\n        authenticationKey: 'KeyIdOf',\n        keyAgreementKeys: 'BTreeSet<KeyIdOf>',\n        delegationKey: 'Option<KeyIdOf>',\n        attestationKey: 'Option<KeyIdOf>',\n        publicKeys: 'BTreeMap<KeyIdOf, DidPublicKeyDetails>',\n        serviceEndpoints: 'Option<ServiceEndpoints>',\n        lastTxCounter: 'u64',\n    },\n    DidStorageVersion: {\n        _enum: ['V1', 'V2'],\n    },\n}, \n// Remove old DID types:\n['DidVerificationKeyUpdateAction']);\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { mergeType } from './mergeType.js';\nimport { types19 } from './types_19.js';\nexport const types20 = mergeType(\n// Use the old types as the base of the new types.\ntypes19, \n// We add these new type:\n{\n    // Staking\n    OrderedSet: 'BoundedVec<Stake, MaxCollatorCandidates>',\n    MaxCollatorCandidates: 'u32',\n    Collator: {\n        id: 'AccountId',\n        stake: 'Balance',\n        // new\n        delegators: 'OrderedSet<Stake, MaxDelegatorsPerCollator>',\n        total: 'Balance',\n        state: 'CollatorStatus',\n    },\n    MaxDelegatorsPerCollator: 'u32',\n    Delegator: {\n        // new\n        delegations: 'OrderedSet<Stake, MaxCollatorsPerDelegator>',\n        total: 'Balance',\n    },\n    MaxCollatorsPerDelegator: 'u32',\n    StakingStorageVersion: {\n        _enum: ['V1_0_0', 'V2_0_0', 'V3_0_0', 'V4'],\n    },\n    // Attestation\n    MaxDelegatedAttestations: 'u32',\n    // KILT Launch\n    MaxClaims: 'u32',\n    // Delegation\n    DelegationNode: {\n        hierarchyRootId: 'DelegationNodeIdOf',\n        parent: 'Option<DelegationNodeIdOf>',\n        // new\n        children: 'BoundedBTreeSet<DelegationNodeIdOf, MaxChildren>',\n        details: 'DelegationDetails',\n    },\n    MaxChildren: 'u32',\n    // DIDs\n    DidNewKeyAgreementKeys: 'BoundedBTreeSet<DidEncryptionKey, MaxNewKeyAgreementKeys>',\n    DidKeyAgreementKeys: 'BoundedBTreeSet<KeyIdOf, MaxTotalKeyAgreementKeys>',\n    DidVerificationKeysToRevoke: 'BoundedBTreeSet<KeyIdOf, MaxVerificationKeysToRevoke>',\n    MaxNewKeyAgreementKeys: 'u32',\n    MaxTotalKeyAgreementKeys: 'u32',\n    MaxVerificationKeysToRevoke: 'u32',\n    MaxPublicKeysPerDid: 'u32',\n    DidPublicKeyMap: 'BoundedBTreeMap<KeyIdOf, DidPublicKeyDetails, MaxPublicKeysPerDid>',\n    DidCreationDetails: {\n        did: 'DidIdentifierOf',\n        newKeyAgreementKeys: 'DidNewKeyAgreementKeys',\n        newAttestationKey: 'Option<DidVerificationKey>',\n        newDelegationKey: 'Option<DidVerificationKey>',\n        newServiceEndpoints: 'Option<ServiceEndpoints>',\n    },\n    DidUpdateDetails: {\n        newAuthenticationKey: 'Option<DidVerificationKey>',\n        // new\n        newKeyAgreementKeys: 'DidNewKeyAgreementKeys',\n        attestationKeyUpdate: 'DidFragmentUpdateAction_DidVerificationKey',\n        delegationKeyUpdate: 'DidFragmentUpdateAction_DidVerificationKey',\n        // new\n        publicKeysToRemove: 'DidVerificationKeysToRevoke',\n        serviceEndpointsUpdate: 'DidFragmentUpdateAction_ServiceEndpoints',\n    },\n    DidDetails: {\n        authenticationKey: 'KeyIdOf',\n        // new\n        keyAgreementKeys: 'DidKeyAgreementKeys',\n        delegationKey: 'Option<KeyIdOf>',\n        attestationKey: 'Option<KeyIdOf>',\n        // new\n        publicKeys: 'DidPublicKeyMap',\n        serviceEndpoints: 'Option<ServiceEndpoints>',\n        lastTxCounter: 'u64',\n    },\n    ServiceEndpoints: {\n        contentHash: 'Hash',\n        // new\n        urls: 'BoundedVec<Url, MaxEndpointUrlsCount>',\n        contentType: 'ContentType',\n    },\n    MaxUrlLength: 'u32',\n    MaxEndpointUrlsCount: 'u32',\n    StorageError: {\n        _enum: {\n            DidAlreadyPresent: 'Null',\n            DidNotPresent: 'Null',\n            DidKeyNotPresent: 'DidVerificationKeyRelationship',\n            VerificationKeyNotPresent: 'Null',\n            CurrentlyActiveKey: 'Null',\n            MaxTxCounterValue: 'Null',\n            // new\n            MaxPublicKeysPerDidKeyIdentifierExceeded: 'Null',\n            MaxTotalKeyAgreementKeysExceeded: 'Null',\n            MaxOldAttestationKeysExceeded: 'Null',\n        },\n    },\n}, \n// Remove old DID types:\n['CollatorSnapshot']);\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { mergeType } from './mergeType.js';\nimport { types20 } from './types_20.js';\nexport const types21 = mergeType(\n// Use the old types as the base of the new types.\ntypes20, \n// We add these new type:\n{\n    StorageError: {\n        _enum: {\n            DidAlreadyPresent: 'Null',\n            DidNotPresent: 'Null',\n            DidKeyNotPresent: 'DidVerificationKeyRelationship',\n            VerificationKeyNotPresent: 'Null',\n            CurrentlyActiveKey: 'Null',\n            MaxTxCounterValue: 'Null',\n            MaxPublicKeysPerDidKeyIdentifierExceeded: 'Null',\n            // renamed\n            MaxTotalKeyAgreementKeysExceeded: 'Null',\n            MaxOldAttestationKeysExceeded: 'Null',\n        },\n    },\n    DidCreationDetails: {\n        did: 'DidIdentifierOf',\n        newKeyAgreementKeys: 'DidNewKeyAgreementKeys',\n        newAssertionMethodKey: 'Option<DidVerificationKey>',\n        newCapabilityDelegationKey: 'Option<DidVerificationKey>',\n        newServiceEndpoints: 'Option<ServiceEndpoints>',\n    },\n    DidDetails: {\n        authenticationKey: 'KeyIdOf',\n        keyAgreementKeys: 'DidKeyAgreementKeys',\n        // renamed\n        capabilityDelegationKey: 'Option<KeyIdOf>',\n        // renamed\n        assertionMethodKey: 'Option<KeyIdOf>',\n        publicKeys: 'DidPublicKeyMap',\n        serviceEndpoints: 'Option<ServiceEndpoints>',\n        lastTxCounter: 'u64',\n    },\n    DelegateSignatureTypeOf: 'DidSignature',\n    ContentType: {\n        _enum: ['application/json', 'application/ld+json'],\n    },\n    // fix: generics mostly don't work here, but OrderedSet is reduced to a Vec anyway\n    Collator: {\n        id: 'AccountId',\n        stake: 'Balance',\n        // fix\n        delegators: 'Vec<Stake>',\n        total: 'Balance',\n        state: 'CollatorStatus',\n    },\n    Delegator: {\n        // fix\n        delegations: 'Vec<Stake>',\n        total: 'Balance',\n    },\n    Keys: 'SessionKeys1',\n}, \n// Remove old DID types:\n['DidUpdateDetails', 'OrderedSet']);\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { mergeType } from './mergeType.js';\nimport { types21 } from './types_21.js';\nexport const types23 = mergeType(\n// Use the old types as the base of the new types.\ntypes21, \n// We add these new type:\n{\n    MinCollators: 'u32',\n    MaxTopCandidates: 'u32',\n    // Renamed collator to candidate since they are not always collators (most of them are candidates)\n    Candidate: {\n        id: 'AccountId',\n        stake: 'Balance',\n        delegators: 'Vec<Stake>',\n        total: 'Balance',\n        // renamed from state to status to be consistent\n        status: 'CandidateStatus',\n    },\n    CandidateStatus: {\n        _enum: {\n            Active: 'Null',\n            Leaving: 'SessionIndex',\n        },\n    },\n    StakingStorageVersion: {\n        _enum: ['V1_0_0', 'V2_0_0', 'V3_0_0', 'V4', 'V5'],\n    },\n}, \n// Remove old DID types:\n[\n    'MaxCollatorCandidates',\n    'MinSelectedCandidates',\n    'Collator',\n    'CollatorStatus',\n]);\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { types23 } from './types_23.js';\nexport const types25 = {\n    // Use the old types as the base of the new types.\n    ...types23,\n    // We add these new type:\n    DidAuthorizedCallOperation: {\n        did: 'DidIdentifierOf',\n        txCounter: 'u64',\n        call: 'DidCallableOf',\n        submitter: 'AccountId',\n    },\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { mergeType } from './mergeType.js';\nimport { types25 } from './types_25.js';\nexport const types2700 = mergeType(\n// Use the old types as the base of the new types.\ntypes25, \n// We add these new type:\n{\n    // Add deposit for attestations\n    Deposit: {\n        owner: 'AccountId',\n        amount: 'Balance',\n    },\n    AttestationDetails: {\n        ctypeHash: 'CtypeHashOf',\n        attester: 'AttesterOf',\n        delegationId: 'Option<DelegationNodeIdOf>',\n        revoked: 'bool',\n        // Added\n        deposit: 'Deposit',\n    },\n    DidAuthorizedCallOperation: {\n        did: 'DidIdentifierOf',\n        txCounter: 'u64',\n        call: 'DidCallableOf',\n        // Added\n        blockNumber: 'BlockNumber',\n        submitter: 'AccountId',\n    },\n    // Remove serviceEndpoints\n    DidDetails: {\n        authenticationKey: 'KeyIdOf',\n        keyAgreementKeys: 'DidKeyAgreementKeys',\n        capabilityDelegationKey: 'Option<KeyIdOf>',\n        assertionMethodKey: 'Option<KeyIdOf>',\n        publicKeys: 'DidPublicKeyMap',\n        lastTxCounter: 'u64',\n        // Added\n        deposit: 'Deposit',\n    },\n    // Remove newServiceEndpoints\n    DidCreationDetails: {\n        did: 'DidIdentifierOf',\n        // Added\n        submitter: 'AccountId',\n        newKeyAgreementKeys: 'DidNewKeyAgreementKeys',\n        newAssertionMethodKey: 'Option<DidVerificationKey>',\n        newCapabilityDelegationKey: 'Option<DidVerificationKey>',\n    },\n    // Remove UrlError\n    DidError: {\n        _enum: {\n            StorageError: 'StorageError',\n            SignatureError: 'SignatureError',\n            InputError: 'InputError',\n            InternalError: 'Null',\n        },\n    },\n    // Remove MaxUrlLengthExceeded\n    InputError: {\n        _enum: [\n            'MaxKeyAgreementKeysLimitExceeded',\n            'MaxVerificationKeysToRemoveLimitExceeded',\n        ],\n    },\n    StorageError: {\n        _enum: {\n            DidAlreadyPresent: 'Null',\n            DidNotPresent: 'Null',\n            DidKeyNotPresent: 'DidVerificationKeyRelationship',\n            KeyNotPresent: 'Null',\n            CurrentlyActiveKey: 'Null',\n            MaxPublicKeysPerDidExceeded: 'Null',\n            MaxTotalKeyAgreementKeysExceeded: 'Null',\n            DidAlreadyDeleted: 'Null',\n        },\n    },\n    SignatureError: {\n        _enum: [\n            'InvalidSignatureFormat',\n            'InvalidSignature',\n            'InvalidNonce',\n            'TransactionExpired',\n        ],\n    },\n    DelegationNode: {\n        hierarchyRootId: 'DelegationNodeIdOf',\n        parent: 'Option<DelegationNodeIdOf>',\n        children: 'BoundedBTreeSet<DelegationNodeIdOf, MaxChildren>',\n        details: 'DelegationDetails',\n        // new\n        deposit: 'Deposit',\n    },\n    // Add V3\n    DidStorageVersion: {\n        _enum: ['V1', 'V2', 'V3'],\n    },\n}, \n// Remove old DID types:\n[\n    'ServiceEndpoints',\n    'UrlError',\n    'ContentType',\n    'Url',\n    'HttpUrl',\n    'FtpUrl',\n    'IpfsUrl',\n    'MaxEndpointUrlsCount',\n    'MaxUrlLength',\n    'DelegationRoot',\n]);\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { mergeType } from './mergeType.js';\nimport { types2700 } from './types_2700.js';\nexport const types10410 = mergeType(\n// Use the old types as the base of the new types.\ntypes2700, \n// We add these new type:\n{}, \n// Remove old DID types:\n['DispatchError']);\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\n// Starting with this version we no longer need to define our custom types manually. They are contained in the runtime metadata.\n// We therefore do not add the types of runtime version 2700 to the type definition here.\nexport const types10720 = {\n    // we need to keep the custom dispatch error since it was changed at some point\n    // DID state_call\n    DidApiAccountId: 'AccountId32',\n    RawDidLinkedInfo: {\n        identifier: 'AccountId32',\n        accounts: 'Vec<DidApiAccountId>',\n        w3n: 'Option<Text>',\n        serviceEndpoints: 'Vec<DidServiceEndpointsDidEndpoint>',\n        details: 'DidDidDetails',\n    },\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { types10720 } from './types_10720.js';\nexport const types10800 = {\n    ...types10720,\n    // Public credentials state_call\n    PublicCredentialFilter: {\n        _enum: {\n            ctypeHash: 'Hash',\n            attester: 'AccountId32',\n        },\n    },\n    PublicCredentialError: {\n        _enum: ['InvalidSubjectId'],\n    },\n    // Staking get_staking_rates\n    StakingRates: {\n        collatorStakingRate: 'Perquintill',\n        collatorRewardRate: 'Perquintill',\n        delegatorStakingRate: 'Perquintill',\n        delegatorRewardRate: 'Perquintill',\n    },\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { types10800 } from './types_10800.js';\nexport const types10900 = {\n    ...types10800,\n    // DID state_call v2\n    DidApiAccountId: 'PalletDidLookupLinkableAccountLinkableAccountId',\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nconst oldDidApiCalls = {\n    query_did_by_w3n: {\n        description: 'Return the information relative to the owner of the provided web3name, if any.',\n        params: [\n            {\n                name: 'name',\n                type: 'Text',\n            },\n        ],\n        type: 'Option<RawDidLinkedInfo>',\n    },\n    query_did_by_account_id: {\n        description: 'Return the information relative to the DID to which the provided account is linked, if any.',\n        params: [\n            {\n                name: 'account',\n                type: 'DidApiAccountId',\n            },\n        ],\n        type: 'Option<RawDidLinkedInfo>',\n    },\n    query_did: {\n        description: 'Return the information relative to the owner of the provided DID, if present.',\n        params: [\n            {\n                name: 'did',\n                type: 'AccountId32',\n            },\n        ],\n        type: 'Option<RawDidLinkedInfo>',\n    },\n};\nconst newDidApiCalls = {\n    query_by_web3_name: {\n        description: 'Return the information relative to the owner of the provided web3name, if any.',\n        params: [\n            {\n                name: 'name',\n                type: 'Text',\n            },\n        ],\n        type: 'Option<RawDidLinkedInfo>',\n    },\n    query_by_account: {\n        description: 'Return the information relative to the DID to which the provided account is linked, if any.',\n        params: [\n            {\n                name: 'account',\n                type: 'DidApiAccountId',\n            },\n        ],\n        type: 'Option<RawDidLinkedInfo>',\n    },\n    query: {\n        description: 'Return the information relative to the owner of the provided DID, if present.',\n        params: [\n            {\n                name: 'did',\n                type: 'AccountId32',\n            },\n        ],\n        type: 'Option<RawDidLinkedInfo>',\n    },\n};\nexport const calls = {\n    DidApi: [\n        {\n            methods: {\n                ...oldDidApiCalls,\n            },\n            version: 1,\n        },\n        // Same calls, since the type of AccountId is overwritten in the type definitions\n        {\n            methods: {\n                ...oldDidApiCalls,\n            },\n            version: 2,\n        },\n    ],\n    Did: [\n        {\n            methods: {\n                ...newDidApiCalls,\n            },\n            version: 1,\n        },\n        // Same calls, since the type of AccountId is overwritten in the type definitions\n        {\n            methods: {\n                ...newDidApiCalls,\n            },\n            version: 2,\n        },\n    ],\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nexport const calls = {\n    Staking: [\n        {\n            methods: {\n                get_staking_rates: {\n                    description: 'Calculate the current staking and reward rates for collators and delegators',\n                    params: [],\n                    type: 'StakingRates',\n                },\n                get_unclaimed_staking_rewards: {\n                    description: 'Calculate the claimable staking rewards for a given account address',\n                    params: [\n                        {\n                            name: 'account',\n                            type: 'AccountId32',\n                        },\n                    ],\n                    type: 'Balance',\n                },\n            },\n            version: 1,\n        },\n    ],\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nexport const calls = {\n    PublicCredentials: [\n        {\n            methods: {\n                get_by_id: {\n                    description: 'Return the public credential with the specified ID, if found.',\n                    params: [\n                        {\n                            name: 'credential_id',\n                            type: 'Hash',\n                        },\n                    ],\n                    type: 'Option<PublicCredentialsCredentialsCredentialEntry>',\n                },\n                get_by_subject: {\n                    description: `Return all the public credentials linked to the specified subject.\n          An optional filter can be passed to be applied to the result before being returned to the client.\n          It returns an error if the provided specified subject ID is not valid.\n          `,\n                    params: [\n                        {\n                            name: 'subject',\n                            type: 'Text',\n                        },\n                        {\n                            name: 'filter',\n                            type: 'Option<PublicCredentialFilter>',\n                        },\n                    ],\n                    type: 'Result<Vec<(Hash, PublicCredentialsCredentialsCredentialEntry)>, PublicCredentialError>',\n                },\n            },\n            version: 1,\n        },\n    ],\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nimport { types8 } from './types_8.js';\nimport { types9 } from './types_9.js';\nimport { types10 } from './types_10.js';\nimport { types12 } from './types_12.js';\nimport { types17 } from './types_17.js';\nimport { types18 } from './types_18.js';\nimport { types19 } from './types_19.js';\nimport { types20 } from './types_20.js';\nimport { types21 } from './types_21.js';\nimport { types23 } from './types_23.js';\nimport { types25 } from './types_25.js';\nimport { types2700 } from './types_2700.js';\nimport { types10410 } from './types_10410.js';\nimport { types10720 } from './types_10720.js';\nimport { types10800 } from './types_10800.js';\nimport { types10900 } from './types_10900.js';\n// Custom runtime calls\nimport { calls as didCalls } from './runtime/did.js';\nimport { calls as stakingCalls } from './runtime/staking.js';\nimport { calls as publicCredentialsCalls } from './runtime/publicCredentials.js';\nexport { types8, types9, types10, types12, types17, types18, types19, types20, types21, types23, types25, types2700, types10410, types10720, types10800, types10900, types10900 as types, };\nexport { calls as didCalls } from './runtime/did.js';\nexport { calls as stakingCalls } from './runtime/staking.js';\nexport { calls as publicCredentialsCalls } from './runtime/publicCredentials.js';\nconst defaultTypesBundle = [\n    {\n        minmax: [0, 8],\n        types: types8,\n    },\n    {\n        minmax: [9, 9],\n        types: types9,\n    },\n    {\n        minmax: [10, 11],\n        types: types10,\n    },\n    {\n        minmax: [12, 16],\n        types: types12,\n    },\n    {\n        minmax: [17, 17],\n        types: types17,\n    },\n    {\n        minmax: [18, 18],\n        types: types18,\n    },\n    {\n        minmax: [19, 19],\n        types: types19,\n    },\n    {\n        minmax: [20, 20],\n        types: types20,\n    },\n    {\n        minmax: [21, 22],\n        types: types21,\n    },\n    {\n        minmax: [23, 24],\n        types: types23,\n    },\n    {\n        minmax: [25, 2699],\n        types: types25,\n    },\n    {\n        minmax: [2700, 10409],\n        types: types2700,\n    },\n    {\n        minmax: [10410, 10719],\n        types: types10410,\n    },\n    {\n        minmax: [10720, 10750],\n        types: types10720,\n    },\n    {\n        minmax: [10800, 10899],\n        types: types10800,\n    },\n    {\n        minmax: [10900, undefined],\n        types: types10900,\n    },\n];\n// Current runtime version: 10730\nexport const typesBundle = {\n    chain: {\n        'KILT Spiritnet': {\n            runtime: {\n                ...didCalls,\n                ...stakingCalls,\n                ...publicCredentialsCalls,\n            },\n            types: defaultTypesBundle,\n        },\n        'KILT Spiritnet Develop': {\n            runtime: {\n                ...didCalls,\n                ...stakingCalls,\n                ...publicCredentialsCalls,\n            },\n            types: defaultTypesBundle,\n        },\n        'KILT Peregrine': {\n            runtime: {\n                ...didCalls,\n                ...stakingCalls,\n                ...publicCredentialsCalls,\n            },\n            types: defaultTypesBundle,\n        },\n        'KILT Peregrine Stagenet': {\n            runtime: {\n                ...didCalls,\n                ...stakingCalls,\n                ...publicCredentialsCalls,\n            },\n            types: defaultTypesBundle,\n        },\n        'KILT Peregrine Develop': {\n            runtime: {\n                ...didCalls,\n                ...stakingCalls,\n                ...publicCredentialsCalls,\n            },\n            types: defaultTypesBundle,\n        },\n        'KILT Mashnet': {\n            runtime: {\n                ...didCalls,\n                ...publicCredentialsCalls,\n            },\n            types: defaultTypesBundle,\n        },\n        Development: {\n            runtime: {\n                ...didCalls,\n                ...publicCredentialsCalls,\n            },\n            types: defaultTypesBundle,\n        },\n    },\n};\n","/**\n * Copyright (c) 2018-2023, BOTLabs GmbH.\n *\n * This source code is licensed under the BSD 4-Clause \"Original\" license\n * found in the LICENSE file in the root directory of this source tree.\n */\nexport const types9 = {\n    // Runtime types\n    DispatchError: 'DispatchErrorPre6First',\n    AccountInfo: 'AccountInfoWithTripleRefCount',\n    Address: 'MultiAddress',\n    AmountOf: 'i128',\n    Balance: 'u128',\n    BlockNumber: 'u64',\n    Index: 'u64',\n    LookupSource: 'MultiAddress',\n    // Ctype types\n    CtypeCreatorOf: 'DidIdentifierOf',\n    CtypeHashOf: 'Hash',\n    // Attestation types\n    ClaimHashOf: 'Hash',\n    AttesterOf: 'DidIdentifierOf',\n    AttestationDetails: {\n        ctypeHash: 'CtypeHashOf',\n        attester: 'AttesterOf',\n        delegationId: 'Option<DelegationNodeIdOf>',\n        revoked: 'bool',\n    },\n    // Delegation types\n    Permissions: 'u32',\n    DelegationNodeIdOf: 'Hash',\n    DelegatorIdOf: 'DidIdentifierOf',\n    DelegationSignature: 'DidSignature',\n    DelegationRoot: {\n        ctypeHash: 'CtypeHashOf',\n        owner: 'DelegatorIdOf',\n        revoked: 'bool',\n    },\n    DelegationNode: {\n        rootId: 'DelegationNodeIdOf',\n        parent: 'Option<DelegationNodeIdOf>',\n        owner: 'DelegatorIdOf',\n        permissions: 'Permissions',\n        revoked: 'bool',\n    },\n    // Did types\n    KeyIdOf: 'Hash',\n    DidIdentifierOf: 'AccountId',\n    AccountIdentifierOf: 'AccountId',\n    BlockNumberOf: 'BlockNumber',\n    DidCallableOf: 'Call',\n    DidVerificationKey: {\n        _enum: {\n            Ed25519: '[u8; 32]',\n            Sr25519: '[u8; 32]',\n        },\n    },\n    DidEncryptionKey: {\n        _enum: {\n            X25519: '[u8; 32]',\n        },\n    },\n    DidPublicKey: {\n        _enum: {\n            PublicVerificationKey: 'DidVerificationKey',\n            PublicEncryptionKey: 'DidEncryptionKey',\n        },\n    },\n    DidVerificationKeyRelationship: {\n        _enum: [\n            'Authentication',\n            'CapabilityDelegation',\n            'CapabilityInvocation',\n            'AssertionMethod',\n        ],\n    },\n    DidSignature: {\n        _enum: {\n            Ed25519: 'Ed25519Signature',\n            Sr25519: 'Sr25519Signature',\n        },\n    },\n    DidError: {\n        _enum: {\n            StorageError: 'StorageError',\n            SignatureError: 'SignatureError',\n            UrlError: 'UrlError',\n            InternalError: 'Null',\n        },\n    },\n    StorageError: {\n        _enum: {\n            DidAlreadyPresent: 'Null',\n            DidNotPresent: 'Null',\n            DidKeyNotPresent: 'DidVerificationKeyRelationship',\n            VerificationKeyNotPresent: 'Null',\n            CurrentlyActiveKey: 'Null',\n            MaxTxCounterValue: 'Null',\n        },\n    },\n    SignatureError: {\n        _enum: ['InvalidSignatureFormat', 'InvalidSignature', 'InvalidNonce'],\n    },\n    KeyError: {\n        _enum: ['InvalidVerificationKeyFormat', 'InvalidEncryptionKeyFormat'],\n    },\n    UrlError: {\n        _enum: ['InvalidUrlEncoding', 'InvalidUrlScheme'],\n    },\n    DidPublicKeyDetails: {\n        key: 'DidPublicKey',\n        blockNumber: 'BlockNumberOf',\n    },\n    DidDetails: {\n        authenticationKey: 'KeyIdOf',\n        keyAgreementKeys: 'BTreeSet<KeyIdOf>',\n        delegationKey: 'Option<KeyIdOf>',\n        attestationKey: 'Option<KeyIdOf>',\n        publicKeys: 'BTreeMap<KeyIdOf, DidPublicKeyDetails>',\n        endpointUrl: 'Option<Url>',\n        lastTxCounter: 'u64',\n    },\n    DidCreationOperation: {\n        did: 'DidIdentifierOf',\n        newAuthenticationKey: 'DidVerificationKey',\n        newKeyAgreementKeys: 'BTreeSet<DidEncryptionKey>',\n        newAttestationKey: 'Option<DidVerificationKey>',\n        newDelegationKey: 'Option<DidVerificationKey>',\n        newEndpointUrl: 'Option<Url>',\n    },\n    DidUpdateOperation: {\n        did: 'DidIdentifierOf',\n        newAuthenticationKey: 'Option<DidVerificationKey>',\n        newKeyAgreementKeys: 'BTreeSet<DidEncryptionKey>',\n        attestationKeyUpdate: 'DidVerificationKeyUpdateAction',\n        delegationKeyUpdate: 'DidVerificationKeyUpdateAction',\n        publicKeysToRemove: 'BTreeSet<KeyIdOf>',\n        newEndpointUrl: 'Option<Url>',\n        txCounter: 'u64',\n    },\n    DidVerificationKeyUpdateAction: {\n        _enum: {\n            Ignore: 'Null',\n            Change: 'DidVerificationKey',\n            Delete: 'Null',\n        },\n    },\n    DidDeletionOperation: {\n        did: 'DidIdentifierOf',\n        txCounter: 'u64',\n    },\n    DidAuthorizedCallOperation: {\n        did: 'DidIdentifierOf',\n        txCounter: 'u64',\n        call: 'DidCallableOf',\n    },\n    HttpUrl: {\n        payload: 'Text',\n    },\n    FtpUrl: {\n        payload: 'Text',\n    },\n    IpfsUrl: {\n        payload: 'Text',\n    },\n    Url: {\n        _enum: {\n            Http: 'HttpUrl',\n            Ftp: 'FtpUrl',\n            Ipfs: 'IpfsUrl',\n        },\n    },\n    // Launch types\n    LockedBalance: {\n        block: 'BlockNumber',\n        amount: 'Balance',\n    },\n};\n","import { useContext } from 'react'\nimport { ApiPromise, WsProvider } from '@polkadot/api'\nimport { typesBundle } from '@kiltprotocol/type-definitions'\n\nimport { StateContext } from './StateContext'\n\nlet cachedApi: Promise<ApiPromise> | null = null\nlet wsProvider: WsProvider | null = null\n\nconst ENDPOINT =\n  // allows comma separated list of endpoints\n  process.env.REACT_APP_FULL_NODE_ENDPOINT?.split(',').map((i) => i.trim()) ||\n  'wss://peregrine.kilt.io/parachain-public-ws'\n\nif (\n  ENDPOINT instanceof Array &&\n  process.env.REACT_APP_SHUFFLE_ENDPOINTS === 'true'\n) {\n  // shuffle endpoint priority\n  for (let i = ENDPOINT.length - 1; i > 0; i--) {\n    const j = Math.floor(Math.random() * (i + 1))\n    ;[ENDPOINT[i], ENDPOINT[j]] = [ENDPOINT[j], ENDPOINT[i]]\n  }\n}\n\nexport const useConnect = () => {\n  const { dispatch } = useContext(StateContext)\n\n  if (!cachedApi) {\n    wsProvider = new WsProvider(ENDPOINT)\n    cachedApi = ApiPromise.create({\n      provider: wsProvider,\n      typesBundle,\n      noInitWarn: process.env.NODE_ENV === 'production',\n    })\n\n    wsProvider.on('disconnected', () => dispatch({ type: 'disconnected' }))\n    wsProvider.on('connected', () => dispatch({ type: 'connected' }))\n    wsProvider.on('error', (error) => dispatch({ type: 'error', err: error }))\n  }\n\n  return cachedApi\n}\n\nexport const getConnection = async () => {\n  if (!cachedApi)\n    throw new Error('Connection to Blockchain was not initialized')\n\n  let resolved = await cachedApi\n  while (!resolved.isConnected) {\n    // Wait until the connection is back\n    await new Promise((done) => setTimeout(() => done(null), 2000))\n  }\n  return resolved\n}\n\nexport async function disconnect() {\n  return (await cachedApi)?.disconnect()\n}\n","import type { u32, u128 } from '@polkadot/types'\nimport type { Balance } from '@polkadot/types/interfaces'\nimport type { Candidate, ChainTypes, StakingRates } from '../types'\nimport { web3FromAddress } from '@polkadot/extension-dapp'\nimport type { SubmittableExtrinsic } from '@polkadot/api/promise/types'\nimport { getConnection } from './useConnect'\nimport { stakingRatesToHuman } from './stakePercentage'\n\nexport async function getGenesis() {\n  const api = await getConnection()\n  // @ts-ignore\n  window.api = api\n  return api.genesisHash.toHex()\n}\n\nexport async function getCandidatePool() {\n  const api = await getConnection()\n  return api.query.parachainStaking.candidatePool.entries()\n}\n\nexport const mapCollatorStateToCandidate = (\n  state: ChainTypes.Collator\n): Candidate => ({\n  id: state.id.toString(),\n  stake: state.stake.toBigInt(),\n  delegators: state.delegators.map((delegator) => {\n    return {\n      id: delegator.owner.toString(),\n      amount: delegator.amount.toBigInt(),\n    }\n  }),\n  total: state.total.toBigInt(),\n  isLeaving: state.status.isLeaving ? state.status.asLeaving.toBigInt() : false,\n  userStakes: [],\n})\n\nexport async function getNextCollators() {\n  const api = await getConnection()\n  return api.query.session.queuedKeys()\n}\n\nexport async function getCurrentCollators() {\n  const api = await getConnection()\n  return api.query.session.validators()\n}\n\nexport async function querySessionInfo() {\n  const api = await getConnection()\n  const roundInfo = api.query.parachainStaking.round()\n  return roundInfo\n}\n\nexport async function queryBestBlock() {\n  const api = await getConnection()\n  return api.derive.chain.bestNumber()\n}\n\nexport async function queryBestFinalisedBlock() {\n  const api = await getConnection()\n  return api.derive.chain.bestNumberFinalized()\n}\n\nexport async function queryOverallTotalStake() {\n  const api = await getConnection()\n  return api.query.parachainStaking.totalCollatorStake()\n}\n\nexport async function queryMaxCandidateCount() {\n  const api = await getConnection()\n  return api.query.parachainStaking.maxSelectedCandidates()\n}\n\nexport async function queryTotalIssurance() {\n  const api = await getConnection()\n  return api.query.balances.totalIssuance()\n}\n\nexport async function queryMinDelegatorStake(): Promise<u128> {\n  const api = await getConnection()\n  return api.consts.parachainStaking.minDelegatorStake\n}\n\nexport async function queryStakingRates(): Promise<StakingRates> {\n  const api = await getConnection()\n  try {\n    const rates = await api.call.staking.getStakingRates()\n    return stakingRatesToHuman(rates)\n  } catch (e) {\n    console.warn(e)\n    return {\n      collatorRewardRate: 0,\n      collatorStakingRate: 0,\n      delegatorRewardRate: 0,\n      delegatorStakingRate: 0,\n    }\n  }\n}\n\nexport async function getUnclaimedStakingRewards(\n  account: string\n): Promise<Balance> {\n  const api = await getConnection()\n  return api.call.staking.getUnclaimedStakingRewards(account)\n}\n\nexport async function getMaxNumberDelegators(): Promise<u32> {\n  const api = await getConnection()\n  return api.consts.parachainStaking.maxDelegatorsPerCollator\n}\nexport async function getBalance(account: string) {\n  const api = await getConnection()\n  return api.query.system.account(account)\n}\n\nexport async function getUnstakingAmounts(account: string) {\n  const api = await getConnection()\n  return api.query.parachainStaking.unstaking(account)\n}\n\nexport async function getDelegatorStake(account: string) {\n  const api = await getConnection()\n  return api.query.parachainStaking.delegatorState(account)\n}\n\nexport async function signAndSend(\n  address: string,\n  tx: SubmittableExtrinsic,\n  onSuccess: (txHash: string) => void,\n  onError: (error: Error) => void\n) {\n  const api = await getConnection()\n  const injector = await web3FromAddress(address)\n\n  let hadError = false\n\n  return tx.signAndSend(\n    address,\n    { signer: injector.signer },\n    ({ status, events, dispatchError }) => {\n      if (status.isFinalized && !dispatchError) {\n        onSuccess(status.asFinalized.toString())\n      }\n      if (dispatchError && !hadError) {\n        hadError = true\n        if (dispatchError.isModule) {\n          // for module errors, we have the section indexed, lookup\n          const decoded = api.registry.findMetaError(dispatchError.asModule)\n          const { docs, name, section } = decoded\n\n          const error = new Error(`${section}.${name}: ${docs.join(' ')}`)\n          onError(error)\n        } else {\n          // Other, CannotLookup, BadOrigin, no extra info\n          const error = new Error(dispatchError.toString())\n          onError(error)\n        }\n      }\n    }\n  )\n}\n\n// Staking features\n\nexport async function joinDelegators(collator: string, stake: bigint) {\n  const api = await getConnection()\n  return api.tx.parachainStaking.joinDelegators(collator, stake)\n}\nexport async function delegatorStakeMore(more: bigint) {\n  const api = await getConnection()\n  return api.tx.parachainStaking.delegatorStakeMore(more)\n}\nexport async function delegatorStakeLess(less: bigint) {\n  const api = await getConnection()\n  return api.tx.parachainStaking.delegatorStakeLess(less)\n}\nexport async function leaveDelegators() {\n  const api = await getConnection()\n  return api.tx.parachainStaking.leaveDelegators()\n}\n\nexport async function withdrawStake(account: string) {\n  const api = await getConnection()\n  return api.tx.parachainStaking.unlockUnstaked(account)\n}\nexport async function claimDelegatorRewards(account: string) {\n  const api = await getConnection()\n  const activeDelegation = await api.query.parachainStaking.delegatorState(\n    account\n  )\n  // if the identity is currently a delegator we need to call incrementDelegatorRewards as well\n  if (activeDelegation.isSome) {\n    const txs = [\n      api.tx.parachainStaking.incrementDelegatorRewards(),\n      api.tx.parachainStaking.claimRewards(),\n    ]\n    return api.tx.utility.batch(txs)\n  }\n  // if the identity is not currently a delegator incrementDelegatorRewards would fail\n  return api.tx.parachainStaking.claimRewards()\n}\n","export const leftFillZero = (num: number | undefined, length: number) => {\n  if (!num) num = 0\n  return num.toString().padStart(length, '0')\n}\n\nconst numberFormat = new Intl.NumberFormat()\n\nexport const format = (amount: number) => `${numberFormat.format(amount)} KILT`\n\nexport * from './chain'\n","// extracted by mini-css-extract-plugin\nexport default {\"info\":\"AccountInfo_info__jyLih\",\"name\":\"AccountInfo_name__Qt06s\",\"stakeLabel\":\"AccountInfo_stakeLabel__iKlWQ\",\"myStakeValue\":\"AccountInfo_myStakeValue__pINsH\",\"availableStakeValue\":\"AccountInfo_availableStakeValue__XyGUl\",\"stakingRewardsValue\":\"AccountInfo_stakingRewardsValue__RKEGT\",\"detailsButton\":\"AccountInfo_detailsButton__FBDEG\"};","// extracted by mini-css-extract-plugin\nexport default {\"buttonRaw\":\"Button_buttonRaw__94Pn3\",\"button\":\"Button_button__wiIYs\",\"orange\":\"Button_orange__RdjQy\",\"green\":\"Button_green__jsHpm\"};","import React, { MouseEvent } from 'react'\nimport cx from 'classnames'\nimport styles from './Button.module.css'\n\nexport enum ButtonColor {\n  green = 'green',\n  orange = 'orange',\n}\n\nexport interface ButtonProps {\n  /**\n   * Label of the button.\n   */\n  label?: string\n  /**\n   * Optional click handler\n   */\n  onClick?: (e: MouseEvent) => void\n  disabled?: boolean\n  color?: ButtonColor\n}\n\nexport const Button: React.FC<ButtonProps> = ({\n  label,\n  children,\n  disabled,\n  color,\n  ...props\n}) => {\n  if (children && !label) {\n    return (\n      <span className={cx(styles.buttonRaw)} {...props}>\n        {children}\n      </span>\n    )\n  }\n  return (\n    <button\n      type=\"button\"\n      className={cx(\n        styles.button,\n        color && {\n          [styles[color]]: true,\n        }\n      )}\n      disabled={disabled}\n      {...props}\n    >\n      {label}\n    </button>\n  )\n}\n","import React, { useContext } from 'react'\nimport styles from './AccountInfo.module.css'\nimport { format } from '../../utils'\nimport { AccountWithPct } from '../../types'\nimport { Button } from '../Button/Button'\nimport { StateContext } from '../../utils/StateContext'\n\nexport interface AccountInfoProps {\n  account: AccountWithPct\n}\nexport const AccountInfo: React.FC<AccountInfoProps> = ({ account }) => {\n  const { dispatch } = useContext(StateContext)\n  return (\n    <div className={styles.info}>\n      <div className={styles.name}>{account.name}</div>\n      <div>\n        <span className={styles.stakeLabel}>MY STAKE: </span>\n        <span className={styles.myStakeValue}>\n          {format(account.staked)} ({account.stakedPct}%)\n        </span>\n      </div>\n      <div>\n        <span className={styles.stakeLabel}>STAKEABLE: </span>\n        <span className={styles.availableStakeValue}>\n          {format(account.stakeable)} {account.stakeablePct}%\n        </span>\n      </div>\n      <div>\n        <span className={styles.stakeLabel}>CLAIMABLE REWARDS: </span>\n        <span className={styles.stakingRewardsValue}>\n          {format(account.rewards)}\n        </span>\n      </div>\n      <div className={styles.detailsButton}>\n        <Button\n          onClick={() => {\n            dispatch({ type: 'selectAccount', account })\n          }}\n          label={'details'}\n        />\n      </div>\n    </div>\n  )\n}\n","import React from 'react'\nimport styles from './Meta.module.css'\nimport cx from 'classnames'\nimport { Identicon } from '../Identicon/Identicon'\nimport { format } from '../../utils'\nimport { Account, AccountWithPct } from '../../types'\nimport { AccountInfo } from './AccountInfo'\nexport interface MetaProps {\n  account: AccountWithPct\n}\nexport const MetaUp: React.FC<MetaProps> = ({ account }) => {\n  return (\n    <div className={styles.meta}>\n      <div className={styles.identicon}>\n        <Identicon address={account.address} />\n        <div className={styles.line}></div>\n      </div>\n      <AccountInfo account={account} />\n    </div>\n  )\n}\n\nexport const MetaDown: React.FC<MetaProps> = ({ account }) => {\n  return (\n    <div className={styles.metaDown}>\n      <div className={cx(styles.identicon, styles.identiconDown)}>\n        <div className={cx(styles.line, styles.lineDown)} />\n        <Identicon address={account.address} />\n      </div>\n      <AccountInfo account={account} />\n    </div>\n  )\n}\n\nexport interface UnusedMetaProps {\n  accounts: Account[]\n  total: number\n  down: boolean\n}\n\nexport const UnusedMeta: React.FC<UnusedMetaProps> = ({\n  accounts,\n  total,\n  down,\n}) => {\n  return (\n    <div className={cx({ [styles.metaDown]: down, [styles.meta]: !down })}>\n      <div className={cx(styles.identicon, { [styles.identiconDown]: down })}>\n        <div className={cx(styles.line, { [styles.lineDown]: down })} />\n        {accounts.map((account) => (\n          <span key={account.address} className={styles.unusedIdenticon}>\n            <Identicon address={account.address} />\n          </span>\n        ))}\n      </div>\n      <div className={styles.unusedInfo}>\n        <div>\n          {format(total)} available for staking in your {accounts.length} other\n          KILT Identities\n        </div>\n      </div>\n    </div>\n  )\n}\n","import React from 'react'\nimport { Data, Account, ChainTypes, StakingRates } from '../types'\nimport { OverallTotalStake } from './polling'\n\nexport const BlockchainDataContext = React.createContext<{\n  dataSet: Data[]\n  accounts: Account[]\n  sessionInfo?: ChainTypes.RoundInfo\n  bestBlock?: number\n  bestFinalisedBlock?: number\n  overallTotalStake?: OverallTotalStake\n  totalIssuance?: bigint\n  maxCandidateCount?: number\n  minDelegatorStake?: number\n  maxNumberDelegators?: number\n  stakingRates?: StakingRates\n}>({\n  dataSet: [],\n  accounts: [],\n})\n","import React, { useContext } from 'react'\nimport styles from './Accounts.module.css'\nimport { Account, AccountWithPct } from '../../types'\nimport { TokenBar } from './TokenBar'\nimport { MetaDown, MetaUp } from './Meta'\nimport { UnusedMeta } from './Meta'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\n\nexport interface UnusedAccountsProps {\n  accounts: Account[]\n  down?: boolean\n}\nexport const UnusedAccounts: React.FC<UnusedAccountsProps> = ({\n  accounts,\n  down,\n}) => {\n  if (!accounts.length) return null\n  const total = accounts.reduce((prev, curr) => prev + curr.stakeable, 0)\n  return (\n    <span className={styles.account}>\n      {!down && <UnusedMeta accounts={accounts} total={total} down={false} />}\n      <TokenBar stakeable={total} staked={0} down={down} />\n      {down && <UnusedMeta accounts={accounts} total={total} down={true} />}\n    </span>\n  )\n}\n\nexport const Accounts: React.FC = () => {\n  const { accounts } = useContext(BlockchainDataContext)\n  const usedAccounts = accounts.filter((account) => account.used)\n  const unusedAccounts = accounts.filter((account) => !account.used)\n\n  return (\n    <div className={styles.accounts}>\n      {usedAccounts.map((account, index) => {\n        const total = account.staked + account.stakeable\n        const stakedPct = ((account.staked / total) * 100).toFixed(1)\n        const stakeablePct = ((account.stakeable / total) * 100).toFixed(1)\n        const accountWithPct: AccountWithPct = {\n          ...account,\n          total,\n          stakedPct,\n          stakeablePct,\n        }\n        return (\n          <React.Fragment key={account.address}>\n            <span className={styles.account}>\n              {index % 2 === 0 && (\n                <>\n                  <MetaUp account={accountWithPct} />\n                </>\n              )}\n              <TokenBar\n                staked={account.staked}\n                stakeable={account.stakeable}\n                down={index % 2 !== 0}\n              />\n              {index % 2 !== 0 && (\n                <>\n                  <MetaDown account={accountWithPct} />\n                </>\n              )}\n            </span>\n          </React.Fragment>\n        )\n      })}\n      <UnusedAccounts\n        accounts={unusedAccounts}\n        down={usedAccounts.length % 2 !== 0}\n      />\n    </div>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"IdentityView_container__wfkDa\",\"identityView\":\"IdentityView_identityView__pLkTF\",\"buttonContainer\":\"IdentityView_buttonContainer__WXPgw\",\"tokenbarContainer\":\"IdentityView_tokenbarContainer__mualg\",\"identiconContainer\":\"IdentityView_identiconContainer__mF8im\",\"identityStakeContainer\":\"IdentityView_identityStakeContainer__UfYez\",\"name\":\"IdentityView_name__cpKyB\",\"identityViewHeader\":\"IdentityView_identityViewHeader__q5LR2\",\"lockedContainer\":\"IdentityView_lockedContainer__wxzO7\",\"buttonCont\":\"IdentityView_buttonCont__sqEo5\",\"greenBar\":\"IdentityView_greenBar__7Jss-\",\"orangeBar\":\"IdentityView_orangeBar__gZnAr\",\"redBar\":\"IdentityView_redBar__L60XN\",\"label\":\"IdentityView_label__UQkyT\",\"labelSmall\":\"IdentityView_labelSmall__F7g45\",\"labelGray\":\"IdentityView_labelGray__KN92t\",\"labelYellow\":\"IdentityView_labelYellow__tC3Aj\",\"labelOrange\":\"IdentityView_labelOrange__BB0nF\",\"labelGreen\":\"IdentityView_labelGreen__fp-K+\",\"textRight\":\"IdentityView_textRight__TvjwF\"};","export const kiltToFemto = (kilt: number) => {\n  const factor = 10n ** 15n\n  const inFemto = BigInt(kilt) * factor\n  return inFemto\n}\n\nexport function femtoToKilt(big: bigint) {\n  const inKilt = big / 10n ** 15n\n  return Number(inKilt)\n}\n\nexport function femtoKiltToDigits(femtoKilt: bigint, digits: number) {\n  const exponent = BigInt(15 - digits)\n  const shiftedKilt = femtoKilt / 10n ** exponent\n\n  return Number(shiftedKilt) / Math.pow(10, digits)\n}\n","export const padTime = (number: number) => number.toString().padStart(2, '0')\n\nexport function blockToTime(block: number) {\n  const inSeconds = block * 12\n  const secondsToMinutes = inSeconds / 60\n  const minutesToHours = secondsToMinutes / 60\n  const hoursToDays = minutesToHours / 24\n\n  const seconds = Math.floor(inSeconds % 60)\n  const minutes = Math.floor(secondsToMinutes % 60)\n  const hours = Math.floor(minutesToHours % 24)\n  const days = Math.floor(hoursToDays)\n\n  return { days, hours, minutes, seconds }\n}\n","import { useContext } from 'react'\nimport { StateContext } from './StateContext'\nimport type { SubmittableExtrinsic } from '@polkadot/api/promise/types'\nimport { signAndSend } from './chain'\n\nexport const useTxSubmitter = () => {\n  const { dispatch } = useContext(StateContext)\n\n  const onSuccess = (txHash: string) => {\n    dispatch({ type: 'transactionFinished', txHash })\n  }\n  const onError = (error: any) => {\n    dispatch({ type: 'handleError', error })\n    dispatch({ type: 'resetTransaction' })\n  }\n\n  const signAndSubmitTx = async (address: string, tx: SubmittableExtrinsic) => {\n    try {\n      dispatch({ type: 'needsSignature' })\n      await signAndSend(address, tx, onSuccess, onError)\n\n      dispatch({ type: 'transactionInProgress' })\n    } catch (e) {\n      console.error(e)\n      onError(e)\n      dispatch({ type: 'resetTransaction' })\n    }\n  }\n\n  return signAndSubmitTx\n}\n","import { useState } from 'react'\n\nexport const useModal = () => {\n  const [isVisible, setIsVisible] = useState(false)\n\n  function toggleModal() {\n    setIsVisible(!isVisible)\n  }\n  function showModal() {\n    setIsVisible(true)\n  }\n  function hideModal() {\n    setIsVisible(false)\n  }\n  return {\n    isVisible,\n    toggleModal,\n    showModal,\n    hideModal,\n  }\n}\n","export function shortenAddress(address: string) {\n  return `${address.substr(0, 4)}...${address.slice(-4)}`\n}\n","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M24.46,17.1a1.21,1.21,0,0,0-2.42,0v6.13a1.21,1.21,0,0,0,2.42,0Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M17.1,22a1.21,1.21,0,0,0,0,2.42h6.13a1.21,1.21,0,0,0,0-2.42Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M13.59,11.88a1.21,1.21,0,0,0-1.69,1.73L22.39,24.1a1.21,1.21,0,0,0,1.73-1.69Z\"\n});\nfunction SvgArrowDown(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"arrow_down\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowDown);\nexport default __webpack_public_path__ + \"static/media/arrow_down.95443295785c5f196541f33029f65d67.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.93,12.79a1.21,1.21,0,0,0-1.7,1.73l4.34,4.34a1.21,1.21,0,0,0,1.73-1.7Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M20.22,21.49A1.21,1.21,0,0,0,22,23.19l4.33-4.33a1.21,1.21,0,0,0-1.7-1.73Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M10.55,16.79a1.21,1.21,0,0,0,0,2.42H25.42a1.21,1.21,0,0,0,0-2.42Z\"\n});\nfunction SvgArrowStraight(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"arrow_straight\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowStraight);\nexport default __webpack_public_path__ + \"static/media/arrow_straight.f599249f67253b8c802802ea78b613ba.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M17.1,11.54a1.21,1.21,0,0,0,0,2.42h6.13a1.21,1.21,0,0,0,0-2.42Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M22,18.9a1.21,1.21,0,0,0,2.42,0V12.75a1.21,1.21,0,0,0-2.42,0Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M11.88,22.41a1.21,1.21,0,0,0,1.73,1.69L24.1,13.61a1.21,1.21,0,0,0-1.69-1.73Z\"\n});\nfunction SvgArrowUp(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"arrow_up\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowUp);\nexport default __webpack_public_path__ + \"static/media/arrow_up.58b4592ea7d353d067cd979353d6aff9.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}.cls-2{fill:#3c3c3b;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-1\",\n  cx: 18,\n  cy: 18,\n  r: 12\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"cls-2\",\n  points: \"18.05 17.97 11.81 14.36 18 10.79 24.25 14.39 24.25 21.61 18.05 25.18 18.05 17.97\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M18,11.35l5.76,3.32v6.66l-5.22,3V17.69l-.49-.28-5.27-3.05,5.22-3m0-1.12-6.73,3.88v7.78L18,25.77l6.73-3.88V14.11L18,10.23ZM17.57,25,11.7,21.64V14.86l5.87,3.39V25Z\"\n});\nfunction SvgBlockNew(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"block_new\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBlockNew);\nexport default __webpack_public_path__ + \"static/media/block_new.e7f4fb0adf49d3693e7eddde7e56df13.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}.cls-2{fill:#3c3c3b;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-1\",\n  cx: 18,\n  cy: 18,\n  r: 12\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"cls-1\",\n  points: \"12.98 23.2 10.7 16.68 17.42 17.87 19.8 24.4 12.98 23.2\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M11.45,17.32l5.6,1,2,5.44-5.67-1-1.91-5.43M9.94,16l2.67,7.6L20.45,25l.07-.08-2.73-7.52L9.94,16Z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"cls-2\",\n  points: \"18.16 16.98 10.88 15.7 15.21 10.54 22.52 11.83 25.05 18.8 20.71 23.98 18.16 16.98\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M15.41,11.09l6.73,1.18,2.34,6.43L20.88,23l-2.15-5.91-.2-.54-.57-.1-6.14-1.08,3.59-4.27M15,10,9.94,16l7.85,1.38,2.73,7.52-.07.08-7.84-1.38L20.48,25l5.14-6.13-2.73-7.51L15,10Z\"\n});\nfunction SvgBlock(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"block\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBlock);\nexport default __webpack_public_path__ + \"static/media/block.f74e294be813288b46b8d4ff4d7b52da.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#1d1d1b;opacity:0.6;}.cls-2{fill:#9d9d9c;}.cls-3{fill:#ededed;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M16.69,25.29a9.23,9.23,0,0,1-1-.21c-.5-.13-.62.09-.62.09l-.66.67a.43.43,0,0,1-.69,0l-3.55-3.55c-.23-.23-.28-.47-.05-.7s.65-.65.65-.65a.76.76,0,0,0,.12-.77c-.06-.23-.14-.56-.19-.8a7.86,7.86,0,1,1,6,5.94Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M9.05,23.09A1,1,0,0,0,7.7,24.47l3.79,3.79a1,1,0,0,0,1.38-1.35Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M7.14,25a1,1,0,0,0-1.35,1.38l3.79,3.79A1,1,0,0,0,11,28.82Z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M5.84,27.57c-.26-.25-.42-.47-.67-.22a.66.66,0,0,0,0,.92l2.53,2.52a.63.63,0,0,0,.9,0c.26-.25,0-.42-.23-.68Z\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M20.67,7.22a.49.49,0,0,0,.37.16h1.69v0L20.9,9.65a8.37,8.37,0,0,1,2.72,1.53h.46a.52.52,0,0,0,.37-.16.51.51,0,0,0,.16-.38.46.46,0,0,0-.16-.36.49.49,0,0,0-.37-.16H22.39v0l1.89-2.3a1.47,1.47,0,0,0,.33-.93.51.51,0,0,0-.16-.38.52.52,0,0,0-.37-.16H21a.52.52,0,0,0-.37.16.51.51,0,0,0-.16.38A.46.46,0,0,0,20.67,7.22Z\"\n});\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M17.87,21.66A2.52,2.52,0,1,0,14,21.34l-2.81,2.81.58.58,2.81-2.8A2.52,2.52,0,0,0,17.87,21.66Zm-3-.58a1.7,1.7,0,1,1,2.41,0A1.71,1.71,0,0,1,14.88,21.08Z\"\n});\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M24.29,11.67A8.45,8.45,0,0,0,10.17,19.9a.78.78,0,0,1-.14.89l-.68.69a.68.68,0,0,0,0,1l4.16,4.16a.7.7,0,0,0,1,0l.68-.69a.7.7,0,0,1,.81-.16,8.45,8.45,0,0,0,8.31-14.1ZM16.65,25.34a9.46,9.46,0,0,1-1-.22c-.49-.12-.61.09-.61.09s-.55.57-.67.68a.43.43,0,0,1-.69,0L10.1,22.32a.44.44,0,0,1,0-.7c.11-.12.65-.65.65-.65a.78.78,0,0,0,.12-.77c-.07-.24-.15-.57-.19-.8a7.86,7.86,0,1,1,6,5.94Z\"\n});\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M20.25,16.77l2.57-3.14v0h-2.3a.73.73,0,0,1-.51-.21.67.67,0,0,1-.21-.5.72.72,0,0,1,.72-.72h4.14a.72.72,0,0,1,.72.72,2,2,0,0,1-.45,1.27l-2.57,3.14v0a0,0,0,0,0,0,0h2.29a.73.73,0,0,1,.51.21.73.73,0,0,1-.51,1.23H20.52a.7.7,0,0,1-.51-.22.69.69,0,0,1-.21-.5A2,2,0,0,1,20.25,16.77Z\"\n});\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M25.69,13.89l2.13-2.61v0H25.91a.61.61,0,0,1-.42-.17.6.6,0,0,1,.42-1h3.44a.58.58,0,0,1,.43.18.58.58,0,0,1,.18.42,1.66,1.66,0,0,1-.38,1.06l-2.14,2.6v0h1.9a.57.57,0,0,1,.43.17A.56.56,0,0,1,30,15a.58.58,0,0,1-.18.42.58.58,0,0,1-.43.18H25.91a.62.62,0,0,1-.6-.6A1.64,1.64,0,0,1,25.69,13.89Z\"\n});\nfunction SvgBulbGray(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"bulb_gray\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBulbGray);\nexport default __webpack_public_path__ + \"static/media/bulb_gray.019bb10629474b3e95a69c81dbb01b8b.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{opacity:0.4;fill:url(#Unbenannter_Verlauf_17);}.cls-2,.cls-3{fill:#ffed00;}.cls-2{opacity:0.6;}\"), /*#__PURE__*/React.createElement(\"radialGradient\", {\n  id: \"Unbenannter_Verlauf_17\",\n  cx: 18,\n  cy: 18,\n  r: 15.29,\n  gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n  offset: 0.85,\n  stopColor: \"#ffed00\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n  offset: 1,\n  stopColor: \"#ffed00\",\n  stopOpacity: 0\n})));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M27.47,6A15.28,15.28,0,0,0,4.26,24.7l2.25-2.25a1.07,1.07,0,0,1,1.52,0L13.55,28a1.06,1.06,0,0,1,0,1.51L11.3,31.74A15.29,15.29,0,0,0,27.47,6Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M16.67,25.36a8.78,8.78,0,0,1-1-.21c-.5-.13-.62.09-.62.09s-.55.56-.67.67a.43.43,0,0,1-.69,0l-3.55-3.55a.44.44,0,0,1,0-.7c.11-.12.65-.65.65-.65a.78.78,0,0,0,.12-.77,7.16,7.16,0,0,1-.19-.8,7.86,7.86,0,1,1,6,5.94Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M9.07,23.1a1,1,0,0,0-1.35,1.38l3.79,3.8a1,1,0,0,0,1.38-1.35Z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M7.16,25A1,1,0,0,0,5.81,26.4L9.6,30.19A1,1,0,0,0,11,28.84Z\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M5.86,27.59c-.26-.25-.42-.48-.67-.22a.66.66,0,0,0,0,.92l2.53,2.52a.63.63,0,0,0,.9,0c.25-.26,0-.43-.23-.68Z\"\n});\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M17.89,21.68a2.53,2.53,0,1,0-3.83-.32l-2.81,2.81.58.58,2.81-2.81A2.51,2.51,0,0,0,17.89,21.68Zm-3-.59a1.7,1.7,0,1,1,2.41,0A1.7,1.7,0,0,1,14.9,21.09Z\"\n});\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M24.31,11.69a8.45,8.45,0,0,0-14.13,8.22.78.78,0,0,1-.13.9l-.69.68a.7.7,0,0,0,0,1l4.16,4.16a.69.69,0,0,0,1,0l.67-.68a.72.72,0,0,1,.82-.16,8.45,8.45,0,0,0,8.31-14.1ZM16.67,25.36c-.29-.05-.74-.14-1-.22-.49-.13-.61.09-.61.09l-.67.68a.43.43,0,0,1-.69,0l-3.55-3.55c-.23-.23-.27-.46,0-.69l.66-.66a.77.77,0,0,0,.11-.77c-.06-.23-.14-.56-.18-.79a7.86,7.86,0,1,1,6,5.94Z\"\n});\nfunction SvgBulbYellow(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"bulb_yellow\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBulbYellow);\nexport default __webpack_public_path__ + \"static/media/bulb_yellow.036a5e69e83a168a3408963c577002d8.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}.cls-2{fill:#fcab21;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-1\",\n  cx: 18,\n  cy: 18,\n  r: 7\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M21.61,15.63a.86.86,0,0,0-1.5-.85L16.6,20.85a.87.87,0,0,0,1.49.88Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M15.07,17.81A.86.86,0,0,0,13.87,19l2.85,2.86A.86.86,0,0,0,18,20.69Z\"\n});\nfunction SvgCheck(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"check\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCheck);\nexport default __webpack_public_path__ + \"static/media/check.8fb5bfc57985852935ceb0c2cb0cbf6f.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{isolation:isolate;}.cls-2{mix-blend-mode:multiply;opacity:0.25;}.cls-3{fill:#1d1d1b;stroke:#fff;stroke-miterlimit:10;}.cls-4{fill:#fff;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-1\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  id: \"close\"\n}, /*#__PURE__*/React.createElement(\"image\", {\n  className: \"cls-2\",\n  width: 155,\n  height: 155,\n  transform: \"translate(1.44 1.44) scale(0.24)\",\n  xlinkHref: \"data:image/png;base64,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\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-3\",\n  cx: 18,\n  cy: 18,\n  r: 12\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-4\",\n  d: \"M22.55,15.88a1.72,1.72,0,0,0-2.46-2.41L13.47,20.1a1.72,1.72,0,0,0,2.41,2.45Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-4\",\n  d: \"M15.88,13.45a1.72,1.72,0,0,0-2.41,2.46l6.63,6.62a1.72,1.72,0,0,0,2.45-2.41Z\"\n})));\nfunction SvgClose(_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    xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.bc93942d2f72af86d9a2ce039943bf9f.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#f96943;stroke:#fff;stroke-miterlimit:10;stroke-width:1.14px;}.cls-2{fill:#fff;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-1\",\n  cx: 18,\n  cy: 18,\n  r: 8\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M19,13.93a1,1,0,0,0-2,0v4.61a1,1,0,0,0,2,0Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-2\",\n  cx: 18,\n  cy: 21.96,\n  r: 1.17\n});\nfunction SvgExclamationNew(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"exclamation_new\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExclamationNew);\nexport default __webpack_public_path__ + \"static/media/exclamation_new.29319ca638759d07c205326138e55db6.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}.cls-2{fill:#f96943;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-1\",\n  cx: 18,\n  cy: 18,\n  r: 7\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M18.86,14.44a.86.86,0,0,0-1.72,0v4a.86.86,0,0,0,1.72,0Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-2\",\n  cx: 18,\n  cy: 21.34,\n  r: 1.02\n});\nfunction SvgExclamation(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"exclamation\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExclamation);\nexport default __webpack_public_path__ + \"static/media/exclamation.1e8c443af8f3e31c32fa93bef2eb83a8.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#9d9d9c;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M17.5,26l-5.45,2.86a1.06,1.06,0,0,1-1.55-1.12l1-6.07a1.08,1.08,0,0,0-.31-1l-4.41-4.3a1.07,1.07,0,0,1,.6-1.82l6.09-.89a1.09,1.09,0,0,0,.81-.58L17,7.61a1.07,1.07,0,0,1,1.92,0l2.72,5.52a1.09,1.09,0,0,0,.81.58l6.09.89a1.07,1.07,0,0,1,.6,1.82l-4.41,4.3a1.08,1.08,0,0,0-.31,1l1,6.07A1.06,1.06,0,0,1,24,28.86L18.5,26A1.1,1.1,0,0,0,17.5,26Z\"\n});\nfunction SvgFavGray(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"fav_gray\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFavGray);\nexport default __webpack_public_path__ + \"static/media/fav_gray.1e96574deb8440ce11246ed4a0a52464.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#ffed00;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M17.5,26l-5.45,2.86a1.06,1.06,0,0,1-1.55-1.12l1-6.07a1.08,1.08,0,0,0-.31-1l-4.41-4.3a1.07,1.07,0,0,1,.6-1.82l6.09-.89a1.09,1.09,0,0,0,.81-.58L17,7.61a1.07,1.07,0,0,1,1.92,0l2.72,5.52a1.09,1.09,0,0,0,.81.58l6.09.89a1.07,1.07,0,0,1,.6,1.82l-4.41,4.3a1.08,1.08,0,0,0-.31,1l1,6.07A1.06,1.06,0,0,1,24,28.86L18.5,26A1.1,1.1,0,0,0,17.5,26Z\"\n});\nfunction SvgFavYellow(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"fav_yellow\",\n    viewBox: \"0 0 36 36\",\n    width: \"36px\",\n    height: \"36px\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFavYellow);\nexport default __webpack_public_path__ + \"static/media/fav_yellow.057cc727f919c1e925e916dbe0730246.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1,.cls-3{fill:#fff;}.cls-1,.cls-10,.cls-12,.cls-6,.cls-8{fill-rule:evenodd;}.cls-2{isolation:isolate;}.cls-4{mask:url(#mask);}.cls-5{mask:url(#mask-2-2);}.cls-6{fill:url(#Unbenannter_Verlauf_4);}.cls-7{mask:url(#mask-3);}.cls-8{fill:url(#Unbenannter_Verlauf_4-2);}.cls-9{mask:url(#mask-4-2);}.cls-10{fill:url(#Unbenannter_Verlauf_4-3);}.cls-11{mask:url(#mask-5);}.cls-12{fill:url(#Unbenannter_Verlauf_4-4);}\"), /*#__PURE__*/React.createElement(\"mask\", {\n  id: \"mask\",\n  x: 36.2,\n  y: 0,\n  width: 7.2,\n  height: 13,\n  maskUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  id: \"mask-2\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n  id: \"path-1\",\n  className: \"cls-1\",\n  points: \"36.2 0 43.4 0 43.4 13 36.2 13 36.2 0\"\n}))), /*#__PURE__*/React.createElement(\"mask\", {\n  id: \"mask-2-2\",\n  x: 63.2,\n  y: 0,\n  width: 4,\n  height: 3,\n  maskUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  id: \"mask-4\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"path-3\",\n  className: \"cls-1\",\n  d: \"M63.52,0a.3.3,0,0,0-.32.26h0V1.87L64.86,3,67.2,1.41,65.14,0Z\"\n}))), /*#__PURE__*/React.createElement(\"linearGradient\", {\n  id: \"Unbenannter_Verlauf_4\",\n  x1: -129.66,\n  y1: 1701.58,\n  x2: -128.66,\n  y2: 1701.58,\n  gradientTransform: \"matrix(4, 0, 0, -3, 581.83, 5106.23)\",\n  gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n  offset: 0,\n  stopColor: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n  offset: 1,\n  stopColor: \"#fff\"\n})), /*#__PURE__*/React.createElement(\"mask\", {\n  id: \"mask-3\",\n  x: 67.2,\n  y: 10,\n  width: 4,\n  height: 3,\n  maskUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  id: \"mask-8\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"path-7\",\n  className: \"cls-1\",\n  d: \"M67.2,11.7,69.14,13h1.71A.4.4,0,0,0,71,13h0a.31.31,0,0,0,.1-.05h0a.26.26,0,0,0,.1-.19h0V11l-1.46-1Z\"\n}))), /*#__PURE__*/React.createElement(\"linearGradient\", {\n  id: \"Unbenannter_Verlauf_4-2\",\n  x1: -129.32,\n  y1: 1701.69,\n  x2: -128.71,\n  y2: 1701.38,\n  gradientTransform: \"matrix(4, 0, 0, -3, 585.83, 5116.23)\",\n  xlinkHref: \"#Unbenannter_Verlauf_4\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n  id: \"mask-4-2\",\n  x: 67.2,\n  y: 3,\n  width: 4,\n  height: 3,\n  maskUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  id: \"mask-12\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"path-11\",\n  className: \"cls-1\",\n  d: \"M67.2,4.58,69.48,6h0l.82-.52a1.87,1.87,0,0,0,.9-1.57h0L69.74,3Z\"\n}))), /*#__PURE__*/React.createElement(\"linearGradient\", {\n  id: \"Unbenannter_Verlauf_4-3\",\n  x1: -129.66,\n  y1: 1701.58,\n  x2: -128.66,\n  y2: 1701.58,\n  gradientTransform: \"matrix(4, 0, 0, -3, 585.83, 5109.23)\",\n  xlinkHref: \"#Unbenannter_Verlauf_4\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n  id: \"mask-5\",\n  x: 63.2,\n  y: 7,\n  width: 4,\n  height: 3,\n  maskUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  id: \"mask-16\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"path-15\",\n  className: \"cls-1\",\n  d: \"M63.94,7.77A2,2,0,0,0,63.2,8.9h0L64.84,10,67.2,8.42,65.09,7Z\"\n}))), /*#__PURE__*/React.createElement(\"linearGradient\", {\n  id: \"Unbenannter_Verlauf_4-4\",\n  x1: -129.66,\n  y1: 1701.58,\n  x2: -128.66,\n  y2: 1701.58,\n  gradientTransform: \"matrix(4, 0, 0, -3, 581.83, 5113.23)\",\n  xlinkHref: \"#Unbenannter_Verlauf_4\"\n}));\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Ebene_2\",\n  \"data-name\": \"Ebene 2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Ebene_2-2\",\n  \"data-name\": \"Ebene 2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Built-on\",\n  className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M0,6H2.32A2.17,2.17,0,0,1,4,6.53a1.8,1.8,0,0,1,.5,1.3,1.5,1.5,0,0,1-.29.91,1.86,1.86,0,0,1-.81.57,1.79,1.79,0,0,1,1,.6A1.68,1.68,0,0,1,4.71,11a2,2,0,0,1-.52,1.39A2.25,2.25,0,0,1,2.48,13H0ZM2.15,9.06a2,2,0,0,0,1.24-.34,1.09,1.09,0,0,0,.42-.91c0-.79-.48-1.18-1.43-1.18H.7V9.06Zm.45,3.31A1.5,1.5,0,0,0,3.73,12a1.29,1.29,0,0,0,.33-.91c0-.95-.6-1.43-1.79-1.43H.7v2.7Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M9.41,13v-.49a1.55,1.55,0,0,1-.56.48,1.67,1.67,0,0,1-.71.13,1.71,1.71,0,0,1-1.43-.56,2.91,2.91,0,0,1-.45-1.82V7.89H7V11a1.66,1.66,0,0,0,.32,1.12,1.09,1.09,0,0,0,.86.36C9,12.49,9.41,12,9.41,11V7.89h.7V13Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M12.6,6.71a.46.46,0,0,1-.79-.33A.48.48,0,0,1,12,6a.43.43,0,0,1,.32-.14A.45.45,0,0,1,12.6,6a.47.47,0,0,1,.13.34A.44.44,0,0,1,12.6,6.71ZM11.92,13V7.89h.7V13Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M14.48,13V6.12l.7-.34V13Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M18.31,13.12c-.67,0-1-.39-1-1.17V8.52h-.87V7.89h.87V6.13l.7-.35V7.89h1.3v.63H18v3.13a1.37,1.37,0,0,0,.11.6.45.45,0,0,0,.44.21,1.42,1.42,0,0,0,.77-.3l-.08.73A2,2,0,0,1,18.31,13.12Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M24.86,13.12a2,2,0,0,1-1.59-.71,2.91,2.91,0,0,1-.6-2,2.94,2.94,0,0,1,.6-2,2,2,0,0,1,1.59-.72,2,2,0,0,1,1.6.7,3,3,0,0,1,.59,2,3,3,0,0,1-.6,2A2,2,0,0,1,24.86,13.12Zm0-.63A1.26,1.26,0,0,0,25.94,12a2.66,2.66,0,0,0,.38-1.51A2.6,2.6,0,0,0,26,8.94a1.25,1.25,0,0,0-1.09-.54,1.28,1.28,0,0,0-1.09.52,2.64,2.64,0,0,0-.37,1.53,2.6,2.6,0,0,0,.37,1.5A1.25,1.25,0,0,0,24.86,12.49Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M31.65,13V9.88a1.69,1.69,0,0,0-.32-1.13,1.12,1.12,0,0,0-.87-.35c-.84,0-1.26.49-1.26,1.46V13h-.7V7.89h.7v.56a1.51,1.51,0,0,1,1.32-.68,1.66,1.66,0,0,1,1.39.57,3,3,0,0,1,.44,1.83V13Z\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Group-27\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Group-10\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"Fill-1\",\n  className: \"cls-1\",\n  d: \"M46.81.27V12.73a.27.27,0,0,1-.08.19h0a.18.18,0,0,1-.07.05.2.2,0,0,1-.11,0H44.92a.26.26,0,0,1-.25-.27V.27A.26.26,0,0,1,44.92,0h1.63a.27.27,0,0,1,.26.27\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  id: \"Fill-3\",\n  className: \"cls-1\",\n  d: \"M54.05,11.13H50.91a.26.26,0,0,1-.23-.21V.26A.26.26,0,0,0,50.43,0H48.8a.26.26,0,0,0-.26.26V12.73a.27.27,0,0,0,.26.27h5.25a.26.26,0,0,0,.25-.26V11.39a.26.26,0,0,0-.25-.26\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Group-7\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-4\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"Fill-5\",\n  className: \"cls-1\",\n  d: \"M43.37,12.61,40.07,6.4a.28.28,0,0,1,0-.25L43.13.39A.27.27,0,0,0,43,0a.27.27,0,0,0-.12,0H41.06a.26.26,0,0,0-.22.13l-2.5,4.72V.26A.26.26,0,0,0,38.08,0H36.45a.26.26,0,0,0-.25.26V12.73a.26.26,0,0,0,.25.27h1.63a.27.27,0,0,0,.26-.27V9.86l-.76-3.59,3.5,6.59a.24.24,0,0,0,.22.14h1.85a.26.26,0,0,0,.25-.26.28.28,0,0,0,0-.13\"\n}))), /*#__PURE__*/React.createElement(\"path\", {\n  id: \"Fill-8\",\n  className: \"cls-1\",\n  d: \"M60.2.26V1.61a.25.25,0,0,1-.25.26H56.79l1,.73a.14.14,0,0,1,.06.11v10a.27.27,0,0,1-.26.27H56a.26.26,0,0,1-.25-.27V2.14a.27.27,0,0,0-.23-.27H53.64a.26.26,0,0,1-.26-.26V.26A.26.26,0,0,1,53.64,0H60a.26.26,0,0,1,.25.26\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Group-13\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-5\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"Fill-11\",\n  className: \"cls-6\",\n  d: \"M63.52,0a.3.3,0,0,0-.32.26h0V1.87L64.86,3,67.2,1.41,65.14,0Z\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Group-16\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-7\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"Fill-14\",\n  className: \"cls-8\",\n  d: \"M67.2,11.7,69.14,13h1.71A.4.4,0,0,0,71,13h0a.31.31,0,0,0,.1-.05h0a.26.26,0,0,0,.1-.19h0V11l-1.46-1Z\"\n}))), /*#__PURE__*/React.createElement(\"path\", {\n  id: \"Fill-17\",\n  className: \"cls-1\",\n  d: \"M71.2.2V1.79L64,6.52A1.83,1.83,0,0,0,63.2,8V4l6.07-4H70.9a.3.3,0,0,1,.3.2\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Group-21\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-9\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"Fill-19\",\n  className: \"cls-10\",\n  d: \"M67.2,4.58,69.48,6h0l.82-.52a1.87,1.87,0,0,0,.9-1.57h0L69.74,3Z\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Group-24\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-11\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"Fill-22\",\n  className: \"cls-12\",\n  d: \"M63.94,7.77A2,2,0,0,0,63.2,8.9h0L64.84,10,67.2,8.42,65.09,7Z\"\n}))), /*#__PURE__*/React.createElement(\"path\", {\n  id: \"Fill-25\",\n  className: \"cls-1\",\n  d: \"M70.38,5.64h0L63.2,10.7V14l8-5.6V4a2,2,0,0,1-.82,1.64\"\n}))));\nfunction SvgBuiltOnKilt(_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    xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n    viewBox: \"0 0 71.2 14\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBuiltOnKilt);\nexport default __webpack_public_path__ + \"static/media/Built_on_KILT.8ace7a28045a464792703380b6449746.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#9d9d9c;}.cls-2{fill:#1d1d1b;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-1\",\n  cx: 18,\n  cy: 18,\n  r: 11.81\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M17.42,11.17a1.59,1.59,0,0,0-2.23,2.27l5.69,5.68a1.59,1.59,0,0,0,2.27-2.22Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M15.17,22.59a1.59,1.59,0,0,0,2.27,2.22l5.68-5.69a1.58,1.58,0,0,0-2.22-2.26Z\"\n});\nfunction SvgNextSessionGray(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"next_session_gray\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNextSessionGray);\nexport default __webpack_public_path__ + \"static/media/next_session_gray.71ae70b8bbe1ec9df46b92be8caf77de.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#ffed00;}.cls-2{fill:#1d1d1b;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-1\",\n  cx: 18,\n  cy: 18,\n  r: 11.81\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M17.42,11.17a1.59,1.59,0,0,0-2.23,2.27l5.69,5.68a1.59,1.59,0,0,0,2.27-2.22Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M15.17,22.59a1.59,1.59,0,0,0,2.27,2.22l5.68-5.69a1.58,1.58,0,0,0-2.22-2.26Z\"\n});\nfunction SvgNextSessionYellow(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"next_session_yellow\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNextSessionYellow);\nexport default __webpack_public_path__ + \"static/media/next_session_yellow.bb61007350f4ffdad8efa722f863870f.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M3.83,15.86a.74.74,0,0,0,0,1,.73.73,0,0,0,1,0l2.64-2.63a.74.74,0,0,0-1-1Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M9.13,16.9a.73.73,0,0,0,1,0,.74.74,0,0,0,0-1L7.52,13.22a.74.74,0,0,0-1,0,.75.75,0,0,0,0,1Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M10.17,20.14a.74.74,0,0,0,0-1,.73.73,0,0,0-1,0L6.48,21.74a.74.74,0,1,0,1,1.05Z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M4.87,19.1a.73.73,0,0,0-1,0,.74.74,0,0,0,0,1l2.64,2.63a.74.74,0,0,0,1,0,.75.75,0,0,0,0-1Z\"\n});\nfunction SvgOrderWhite(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"order_white\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 14 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOrderWhite);\nexport default __webpack_public_path__ + \"static/media/order_white.cd5eb7ca7c2f31232a8dce68c1b4f03d.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#ffed00;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M3.83,15.86a.74.74,0,0,0,0,1,.73.73,0,0,0,1,0l2.64-2.63a.74.74,0,0,0-1-1Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M9.13,16.9a.73.73,0,0,0,1,0,.74.74,0,0,0,0-1L7.52,13.22a.74.74,0,0,0-1,0,.75.75,0,0,0,0,1Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M10.17,20.14a.74.74,0,0,0,0-1,.73.73,0,0,0-1,0L6.48,21.74a.74.74,0,1,0,1,1.05Z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M4.87,19.1a.73.73,0,0,0-1,0,.74.74,0,0,0,0,1l2.64,2.63a.74.74,0,0,0,1,0,.75.75,0,0,0,0-1Z\"\n});\nfunction SvgOrderYellow(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"order_yellow\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 14 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOrderYellow);\nexport default __webpack_public_path__ + \"static/media/order_yellow.cbcf02db96cbcf07ab35a5795e3a0450.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#ededed;}.cls-2{fill:#9d9d9c;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M8.72,13.76l2.14-2.61v0a0,0,0,0,0,0,0H9a.58.58,0,0,1-.43-.18.54.54,0,0,1-.18-.41A.61.61,0,0,1,9,9.92h3.44a.58.58,0,0,1,.42.18.58.58,0,0,1,.18.43,1.63,1.63,0,0,1-.38,1.05l-2.13,2.61v0h1.91a.58.58,0,0,1,.42.18.54.54,0,0,1,.18.41.56.56,0,0,1-.18.42.58.58,0,0,1-.42.18H9a.58.58,0,0,1-.43-.18.56.56,0,0,1-.18-.42A1.63,1.63,0,0,1,8.72,13.76Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M20.74,14.24c.11.13-.1.54-.47.91s-.78.58-.91.46L31.83,28.07a1,1,0,0,0,1.38-1.35\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M15.09,10C10.25,14.82,8,20.62,9.44,23.85c.51-3.08,2.66-7,6-10.76a.94.94,0,0,1,1.35,0l1.81,1.81c.12.12.53-.08.9-.45s.59-.78.47-.91l-1.81-1.82a.93.93,0,0,1,0-1.35C21.94,7,25.89,4.83,29,4.32,25.74,2.87,19.94,5.13,15.09,10Zm.9.89c-.65.65-1.34,1-1.54.82s.16-.89.82-1.54,1.34-1,1.54-.82S16.64,10.22,16,10.87Z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M14.12,21.09,16.69,18v0h-2.3a.71.71,0,0,1-.51-.21.71.71,0,0,1,0-1,.72.72,0,0,1,.51-.22h4.14a.74.74,0,0,1,.51.22.69.69,0,0,1,.21.51,2,2,0,0,1-.46,1.27l-2.56,3.13v0h2.3a.73.73,0,0,1,.51.21.71.71,0,0,1,0,1,.73.73,0,0,1-.51.21H14.39a.71.71,0,0,1-.51-.21.69.69,0,0,1-.21-.51A2,2,0,0,1,14.12,21.09Z\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.36,15l2.14-2.6v0H21.58a.57.57,0,0,1-.42-.17.6.6,0,0,1,.42-1H25a.62.62,0,0,1,.6.6,1.64,1.64,0,0,1-.38,1.06l-2.13,2.61v0H25a.61.61,0,0,1,.42.17.6.6,0,0,1-.42,1H21.58a.62.62,0,0,1-.6-.6A1.64,1.64,0,0,1,21.36,15Z\"\n});\nfunction SvgPickaxGray(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"pickax_gray\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPickaxGray);\nexport default __webpack_public_path__ + \"static/media/pickax_gray.524f70e08c3010f4deed4997e71720a1.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#f39200;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M20.74,14.31c.11.13-.1.53-.47.91s-.78.57-.91.45L31.83,28.14a1,1,0,0,0,1.38-1.36\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M15.09,10C10.25,14.89,8,20.69,9.44,23.91c.51-3.07,2.66-7,6-10.76a.94.94,0,0,1,1.35,0l1.81,1.81c.12.13.53-.07.9-.45s.59-.78.47-.91l-1.81-1.81a.93.93,0,0,1,0-1.35c3.73-3.36,7.68-5.52,10.76-6C25.74,2.93,19.94,5.2,15.09,10Zm.9.9c-.65.65-1.34,1-1.54.81s.16-.89.82-1.54,1.34-1,1.54-.81S16.64,10.29,16,10.94Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"cls-1\",\n  points: \"3.29 17.57 4.82 22.85 5.49 20.09 7.18 23.39 5.29 17.96 4.84 20.61 3.29 17.57\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M6.33,24.92,2,27.44v5L6.33,35l4.37-2.52v-5Zm-.19,9.74-4-2.3V27.77l4,2.3Z\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M15.19,20.54l-2.81,1.63v3.25l2.81,1.63L18,25.42V22.17Zm-.12,6.29L12.5,25.35v-3l2.57,1.48Z\"\n});\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M16.9,23.77l-3.66,2.12v4.22l3.66,2.12,3.67-2.12V25.89ZM16.74,32,13.41,30V26.17l3.33,1.92Z\"\n});\nfunction SvgPickaxOrange(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"pickax_orange\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPickaxOrange);\nexport default __webpack_public_path__ + \"static/media/pickax_orange.9c38843f380e51f08c609ac956b06fbb.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#ffed00;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M20.74,14.31c.11.13-.1.53-.47.91s-.78.57-.91.45L31.83,28.14a1,1,0,0,0,1.38-1.36\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M15.09,10C10.25,14.89,8,20.69,9.44,23.91c.51-3.07,2.66-7,6-10.76a.94.94,0,0,1,1.35,0l1.81,1.81c.12.13.53-.07.9-.45s.59-.78.47-.91l-1.81-1.81a.93.93,0,0,1,0-1.35c3.73-3.36,7.68-5.52,10.76-6C25.74,2.93,19.94,5.2,15.09,10Zm.9.9c-.65.65-1.34,1-1.54.81s.16-.89.82-1.54,1.34-1,1.54-.81S16.64,10.29,16,10.94Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"cls-1\",\n  points: \"3.29 17.57 4.82 22.85 5.49 20.09 7.18 23.39 5.29 17.96 4.84 20.61 3.29 17.57\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M6.33,24.92,2,27.44v5L6.33,35l4.37-2.52v-5Zm-.19,9.74-4-2.3V27.77l4,2.3Z\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M15.19,20.54l-2.81,1.63v3.25l2.81,1.63L18,25.42V22.17Zm-.12,6.29L12.5,25.35v-3l2.57,1.48Z\"\n});\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M16.9,23.77l-3.66,2.12v4.22l3.66,2.12,3.67-2.12V25.89ZM16.74,32,13.41,30V26.17l3.33,1.92Z\"\n});\nfunction SvgPickaxYellow(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"pickax_yellow\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPickaxYellow);\nexport default __webpack_public_path__ + \"static/media/pickax_yellow.1e55900c5dd7c7a87ebc6c052e5c1013.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M24.16,22.07h0l-2.78-2.78a5.3,5.3,0,1,0-2.1,2.1l2.78,2.78h0a1.48,1.48,0,0,0,2.09-2.09Zm-10-2.76a3.64,3.64,0,1,1,5.15,0A3.65,3.65,0,0,1,14.16,19.31Z\"\n});\nfunction SvgSearch(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"search\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearch);\nexport default __webpack_public_path__ + \"static/media/search.3ba29f8384340aa5066e68a15b33f559.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m1.7 1.6c.5.3.8.8 1.4 1.1.3.1.3-.2.3-.4.1-.3.5-.2.5 0 .4 2 1.3.4 1.3 1.2 0 .2-.3.4-.1.5 1.7 1.9 4.3 2.5 6.5 3.7 1.6.9 3 2.2 4.8 2.9 1.3.2 2.5.6 3.8.8.7.2 1.4 0 2 .2.3.1.6 0 .8 0s.4.2.6.2c.1 0 .2 0 .2.1.5.4 1.1-.2 1.6-.4s1.7-.4 2 .2c0 .1.1.1.2.1.4 0 .8-.1 1.2-.3.2-.2.4-.2.6-.2.3 0 .9.3 1.1 0 .4-1.5 1.2-3.4 3-3.6 1-.2 1.9 0 2.8.4s1.1 1.5 1.5 2.3c.3.8.3 1.8.1 2.6 0 .2 0 .3.1.4.5.2 1.2-.4 1.7.3.1.2.4.1.5.4.1.1.2.1.3.2.1 0 .2.2.4.2.9.2 1.7.6 2.6.7.7.1 1.3.5 2 .7 1.4.3 3-.1 4.4-.5 1-.2 2-.1 3-.3.6-.3.9-1.1 1.8-.6.4.1.5.5.8.6.6.1 1.2.4 1.8.5.4 0 .6.4.9.7.5.4.7 1.1 1.2 1.5.1.3.5.4.5.7-.5.6-1.2-.6-1.7-.8 0 .3.3.6.2.9-.2.2-.7.1-.7-.2 0 0 0-.1-.1-.1 0 .4-.4.4-.6.2-.1.1 0 .1 0 .2 0 .4-.5.2-.6 0-.2-.3-.1-.6-.4-.9 0 .3.1 1.3-.4 1-.3-.3-.2-.9-.7-.9-.3-.1-.6-.2-.7-.5-.1-.2-.8-.2-1-.1-.6.5-1.3.7-1.9 1.1-1 .6-2.1.7-3.1 1.2-.4.2-.8.2-1.2.1-1-.2-2-.3-3-.2-.8.1-1 .5-1 .9-.4.5-1 1.2-1.8.9-1.3-.2-2.8.3-3.4 1.5-1.2 1.7-.6 3.9-2.4 5.1.6-.1 1.1-.2 1.7-.5.5-.2 1.2-.1 1.7-.3.6-.3 1.2.1 1.8.1 1-.1 2 .3 2.8.8 1 .7 1.2 2 1.3 3.1.4 1.9.6 3.9.5 5.9-.1 2.2-.4 4.5-.6 6.7-.1.5.6.2.6.8 0 .3-.2.6 0 .8.1.3.1.6.3.9.1.2.2.3.1.5-.1.3.2.4.4.5.4.4 1.1.1 1.5.5.2.1.4.1.6.2.2.2.4.2.7.1.8-.1 2.1-.3 2.4.7.9 1.9-5 2.4-6.2 3-.6.1-2.9 1-3.1.3-.2-.6-.4-1.2-.5-1.9-.1-.4.1-.8.2-1.2 0-.2.2-.3.3-.6-.2-2.4-.3-5-1.2-7.3-1-2.3-.3-4.8-.7-7.1-.1-.4-1.6-.3-1.3.9.2.5-1.2.5-1.7.7s-.7.9-1.3 1c-.5.3-1.1.2-1.6.3-1.5 0-2.9.4-4.4.7-1.3.3-1.4 2.4-1.7 3.4-.1.5.6 1-.3 1.4-.6.3-.3 1.2-.4 1.6-.3.9-.3 1.5-.8 2.1-.3.5-.3 1-.2 1.6 0 .5-.4.8-.5 1.3-.1.2-.1.4-.1.5.4 1.2 0 2.5.1 3.7.1 1 .6 1.8.4 2.8-.3 3.7-3.2 3.5-4 .1-.5-1.9-.2-3.8-.2-5.7 0-.3-.3-.7-.4-1-.6-1.4-1.3-1.7-1.1-3.4 0-.4.2-.8.1-1.2-.1-.1-.1-.7-.2-.7-.6-.1-.3-.7-.3-.9-.1-.5.5-.4.3-.9-.2-1.6.2-3.1.1-4.7.2-.5-.2-1 0-1.5.1-.6.4-1.2.5-1.8-.2-.5-.2-1 .2-1.3.2-.2.1-.4.1-.5-.1-.1-.3-.1-.4-.1-.5-.2-.2-1.4-.1-1.8 0-.3.3-3.1 1.2-4.5.2-.4.4-.9.6-1.4.4-1 .4-1.3.8-2 .8-1.4-.6-3.7-1.7-4.8-1-.4-2.4-.6-2.7-1.5-.4-1.1-3.5-1.8-5.2-2.7-1.2-.3-2.1-1-3-1.7-2.3-1.1-4.2-4.8-6.5-5.3-.2 0-.3 0-.5-.1-.8-.5-1.2-.4-1.6-.7-.2-.2-.5-.3-.6-.6 0-.1-.1-.2-.2-.2-1.1-1.1 1.6.1-1.2-2.7v-.3c.5-.1 1 .3 1.4.6.3-.3-.5-.7-.1-1zm43 43.7c.1-.3.5-.9 0-1-.3.2-.1.7 0 1z\",\n  fill: \"#fff\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m38.6 69.3-.1-.1c-.6-.3-.8-.8-.9-1.4-.1-.8.2-1.1.7-1.3.2-.1.4-.1.5-.2.4-.1.7 0 1 .2.1 0 .1.1.2.2s.2.1.3 0c.3-.2.5-.4.7-.7.1-.1.1-.3.1-.4s-.1-.2-.2-.2c-.2 0-.4 0-.6-.1h-.2c-.1.1-.1.2-.3 0s-.5-.3-.8-.2c-.1.1-.2.1-.3.1-.8.3-1.7.7-2.6 1-.5.2-1 .4-1.6.5h-1c-.2 0-.3-.1-.3-.3s0-.3.2-.4c.3-.2.5-.3.8-.5.7-.3 1.4-.5 2.1-.8l.6-.3c.4-.4.8-.7 1.2-1.1 1.3-1 2.7-2 4-3 1.6-1.2 3.2-2.4 4.8-3.5.7-.5 1.4-1 2.2-1.4.9-.4 1.5-1 2.1-1.7.6-.8 1.2-1.7 1.8-2.4 1.3-1.5 2.7-2.7 4.6-3.4.5-.2.9-.3 1.4-.2s.8.4.9.9c.1.4 0 .7-.1 1-.2.8-.5 1.6-1.1 2.2-.4.4-.9.7-1.4 1-.7.3-1.3.7-2 1.2-.2.1-.3.3-.2.5 0 .3 0 .3-.2.2h-.1v.1c0 .2-.1.4-.3.6-.1.1-.1.1 0 .2.1.3.4.5.7.5.3.1.5.1.8.1.4 0 .4 0 .5-.4.1-.3.2-.6.5-.8s.6-.3 1-.4c.3-.1.6 0 .8.2.6.4.8 1 .7 1.8 0 .3-.2.6-.6.8-.3.1-.6.2-.8.4-.2.1-.5.1-.7-.1l-.3-.3c-.1-.1-.2-.1-.4-.1-.3.2-.7.3-1.1.4-.3.1-.7.2-1 .4-.4.2-.8.4-1.2.5-.3.1-.5.3-.5.6 0 .4-.2.6-.6.8-.2.1-.4.2-.6.2-.5.2-1 .1-1.4-.4-.3-.4-.5-.9-.5-1.4v-.2c-.1 0-.2.1-.2.1-.3.3-.7.5-1 .8-.9.7-1.9 1.4-2.8 2.1-.2.1-.3.3-.5.4 0 0-.1.1-.1.2.1.2 0 .3-.2.3-.1 0-.2 0-.3.1-.4.4-.8.8-1.2 1.1-.1.1-.1.2-.3.2-.1 0-.1.1-.1.1 0 .2-.1.4.1.5.1.1.1.1 0 .2s0 .3.1.3c.2.1.4.3.5.5.1.1.2.1.3.1s.1-.1.1-.2v-.1c0-.4.2-.7.6-.9.2-.1.4-.1.6-.2.4-.2.8-.1 1.1.2.4.4.6.9.6 1.5 0 .4-.2.7-.6.8-.2.1-.4.2-.6.2-.4.2-.8.1-1.1-.2-.2-.2-.3-.2-.5-.1-1.1.4-2.2.8-3.3 1.3-.2.1-.3.2-.3.4 0 .5-.3.8-.7.9-.3.1-.6.2-.8.3-.4.3-.5.2-.6.2zm13.2-12c.2.1.3.2.4.3s.2.1.3 0 .1-.2 0-.3-.2-.1-.2-.3-.2-.3-.4-.3h-.2c-.3.2-.5.3-.7.6.3 0 .5-.1.8 0z\",\n  fill: \"#fff\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"m28.6 27.1c-.2-.1-.3-.2-.2-.4.2-.8.4-1.5.6-2.3 0-.2.1-.4.1-.6 0-.3-.1-.5 0-.8.1-.2-.1-.4-.2-.8s-.2-.8-.2-1.3c0-.4.1-.9.2-1.3.1-.3.2-.6.2-1 0-.1.1-.2.2-.2h.3c.3.1.6.1 1 .2.2 0 .3.1.2.3-.1.5-.2 1-.3 1.4-.1.5-.1.9 0 1.4.1-.2.2-.4.3-.5s.2-.2.2-.4c.3-.4.7-.8 1-1.1l.7-.7c.1-.1.2-.2.4-.1l1.2.3c.1 0 .1 0 .2.1s.1.2 0 .3l-.9.9c-.2.3-.5.5-.7.7s-.4.4-.5.7c-.2.5-.4.5-.6.9-.1.1-.2.2 0 .5.1.3.2.5.3.8 0 .1.1.3.1.5.1.5.4.9.6 1.3.3.5.6.9.8 1.5 0 .1.1.2 0 .3s-.2.1-.3.1c-.4-.1-.8-.2-1.2-.2-.2 0-.2-.1-.3-.2-.2-.5-.4-.9-.6-1.4-.3-.5-.5-1-.6-1.6-.1-.5-.3-.9-.5-1.3 0 0 0-.1-.1-.1 0 .2.1.5.1.7v2c-.1.4-.2.8-.2 1.2 0 .2-.1.3-.3.4-.1 0-.5-.1-1-.2z\"\n});\nfunction SvgSkateboarder(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    viewBox: \"0 0 60 71\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSkateboarder);\nexport default __webpack_public_path__ + \"static/media/skateboarder.94dbee2a5cc6d741849a71aa117b8fac.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}.cls-2{fill:#3c3c3b;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-1\",\n  cx: 18.36,\n  cy: 18.65,\n  r: 12\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M20,15.27V11.21a1.72,1.72,0,0,0-3.44,0v8a1.72,1.72,0,0,0,3.44,0Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M23.8,17.58H18.32V21h5.51a1.73,1.73,0,0,0,0-3.45Z\"\n});\nfunction SvgTime(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"time\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTime);\nexport default __webpack_public_path__ + \"static/media/time.c3c0130c352b34f50401f88c24ba1152.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#9d9d9c;}.cls-2{fill:#ffed00;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M30.37,15.48s0,.09,0,.15c0,2.07-4.94,3.75-11,3.75a21.75,21.75,0,0,1-9.2-1.69V19c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31V17A4.71,4.71,0,0,0,30.37,15.48Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.1,24.44c-5.29,0-9.72-1.37-11-3.25l0,0v2c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31v-2l0,0C30.81,23.07,26.38,24.44,21.1,24.44Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.1,28.65c-5.29,0-9.72-1.37-11-3.25l0,.06v2c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31v-2l0-.06C30.81,27.28,26.38,28.65,21.1,28.65Z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.2,15.87c-5.34,0-9.81-1.4-11-3.31v-2a3.34,3.34,0,0,1,.59-.68c-3.44.5-6.09,1.62-7,3v2c1.2,1.91,5.67,3.31,11,3.31,4.67,0,8.67-1.07,10.41-2.61A28.44,28.44,0,0,1,21.2,15.87Z\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.1,5.19c-5.34,0-9.81,1.41-11,3.31v2c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31v-2C30.91,6.6,26.44,5.19,21.1,5.19Zm3.32,5-4-1.27-.64.48,1.12,1.21L17.73,11,14.12,7.05l3.15-.38,1.46,1.59c.38-.44,1.32-1.35,1.9-2l3.76-.45L21.9,7.89l6.24,1.82Z\"\n});\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M17.81,18.3a1.21,1.21,0,0,0-1.19,1.22,1.22,1.22,0,0,0,1.21,1.2h8A1.22,1.22,0,0,0,27,19.52,1.2,1.2,0,0,0,25.8,18.3Z\"\n});\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-2\",\n  d: \"M20.59,23.5a1.22,1.22,0,0,0,2.43,0v-8a1.22,1.22,0,0,0-2.43,0Z\"\n});\nfunction SvgTokensGray(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"tokens_gray\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTokensGray);\nexport default __webpack_public_path__ + \"static/media/tokens_gray.b58a924c906976c9650b5b6e97a436e3.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M30.37,15.48s0,.09,0,.15c0,2.07-4.94,3.75-11,3.75a21.75,21.75,0,0,1-9.2-1.69V19c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31V17A4.71,4.71,0,0,0,30.37,15.48Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.1,24.44c-5.29,0-9.72-1.37-11-3.25l0,0v2c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31v-2l0,0C30.81,23.07,26.38,24.44,21.1,24.44Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.1,28.65c-5.29,0-9.72-1.37-11-3.25l0,.06v2c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31v-2l0-.06C30.81,27.28,26.38,28.65,21.1,28.65Z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.2,15.87c-5.34,0-9.81-1.4-11-3.31v-2a3.34,3.34,0,0,1,.59-.68c-3.44.5-6.09,1.62-7,3v2c1.2,1.91,5.67,3.31,11,3.31,4.67,0,8.67-1.07,10.41-2.61A28.44,28.44,0,0,1,21.2,15.87Z\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.1,5.19c-5.34,0-9.81,1.41-11,3.31v2c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31v-2C30.91,6.6,26.44,5.19,21.1,5.19Zm3.32,5-4-1.27-.64.48,1.12,1.21L17.73,11,14.12,7.05l3.15-.38,1.46,1.59c.38-.44,1.32-1.35,1.9-2l3.76-.45L21.9,7.89l6.24,1.82Z\"\n});\nfunction SvgTokensWhite(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"tokens_white\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTokensWhite);\nexport default __webpack_public_path__ + \"static/media/tokens_white.34dd825475282f311988fd2c7845465d.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#ffed00;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M30.37,15.48s0,.09,0,.15c0,2.07-4.94,3.75-11,3.75a21.75,21.75,0,0,1-9.2-1.69V19c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31V17A4.71,4.71,0,0,0,30.37,15.48Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.1,24.44c-5.29,0-9.72-1.37-11-3.25l0,0v2c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31v-2l0,0C30.81,23.07,26.38,24.44,21.1,24.44Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.1,28.65c-5.29,0-9.72-1.37-11-3.25l0,.06v2c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31v-2l0-.06C30.81,27.28,26.38,28.65,21.1,28.65Z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.2,15.87c-5.34,0-9.81-1.4-11-3.31v-2a3.34,3.34,0,0,1,.59-.68c-3.44.5-6.09,1.62-7,3v2c1.2,1.91,5.67,3.31,11,3.31,4.67,0,8.67-1.07,10.41-2.61A28.44,28.44,0,0,1,21.2,15.87Z\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M21.1,5.19c-5.34,0-9.81,1.41-11,3.31v2c1.2,1.91,5.67,3.31,11,3.31s9.81-1.4,11-3.31v-2C30.91,6.6,26.44,5.19,21.1,5.19Zm3.32,5-4-1.27-.64.48,1.12,1.21L17.73,11,14.12,7.05l3.15-.38,1.46,1.59c.38-.44,1.32-1.35,1.9-2l3.76-.45L21.9,7.89l6.24,1.82Z\"\n});\nfunction SvgTokensYellow(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"Ebene_1\",\n    \"data-name\": \"Ebene 1\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 36 36\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTokensYellow);\nexport default __webpack_public_path__ + \"static/media/tokens_yellow.2b471dd43af7114e6ff48b221b1925ae.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#ffed00;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M1.93,4.58A1.21,1.21,0,0,0,2,7h8a1.21,1.21,0,0,0,0-2.42Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M4.71,9.79a1.21,1.21,0,0,0,2.42,0V1.81A1.21,1.21,0,0,0,5.93.6,1.23,1.23,0,0,0,4.71,1.79Z\"\n});\nfunction SvgPlusActive(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"_active\",\n    \"data-name\": \"+ active\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 12 12\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlusActive);\nexport default __webpack_public_path__ + \"static/media/plus_active.42c9bd7ef26bbb6953c974853bfc2983.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#ffed00;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M1.93,4.58A1.21,1.21,0,0,0,2,7h8a1.21,1.21,0,0,0,0-2.42Z\"\n});\nfunction SvgMinusActive(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"_-_active\",\n    \"data-name\": \"- active\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 12 12\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMinusActive);\nexport default __webpack_public_path__ + \"static/media/minus_active.42f8908c80747115dcc39e1ae4aba36a.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#9d9d9c;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M1.93,4.58A1.21,1.21,0,0,0,2,7h8a1.21,1.21,0,0,0,0-2.42Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M4.71,9.79a1.21,1.21,0,0,0,2.42,0V1.81A1.21,1.21,0,0,0,5.93.6,1.23,1.23,0,0,0,4.71,1.79Z\"\n});\nfunction SvgPlusInactive(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"_inactive\",\n    \"data-name\": \"+ inactive\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 12 12\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlusInactive);\nexport default __webpack_public_path__ + \"static/media/plus_inactive.8957354476aa439897049457a98dba61.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#9d9d9c;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M1.93,4.58A1.21,1.21,0,0,0,2,7h8a1.21,1.21,0,0,0,0-2.42Z\"\n});\nfunction SvgMinusInactive(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"_-_inactive\",\n    \"data-name\": \"- inactive\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 12 12\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMinusInactive);\nexport default __webpack_public_path__ + \"static/media/minus_inactive.e37f24940f92ebc892edfe075227b35c.svg\";\nexport { ForwardRef as ReactComponent };","function _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);}import*as React from\"react\";var _ref2=/*#__PURE__*/React.createElement(\"defs\",null,/*#__PURE__*/React.createElement(\"style\",null,\".cls-1{fill:#fff;}\"));var _ref3=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M58.42,37.4V27.46h6.51v1.46H60.21v2.7h4.44v1.45H60.21V37.4Z\"});var _ref4=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M65.72,27.31h2V29h-2Zm.1,10.09V30.51h1.76V37.4Z\"});var _ref5=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M73.52,31.8l-1,.1c-1.17.13-1.75.72-1.75,1.78V37.4H69V30.51h1.68v1.21a2.32,2.32,0,0,1,2.21-1.35l.53-.05Z\"});var _ref6=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M79.86,34.27H75.17a2.14,2.14,0,0,0,.57,1.42,2,2,0,0,0,1.41.47,3.33,3.33,0,0,0,2.09-.73l.51,1.21a3.73,3.73,0,0,1-1.21.63,4.6,4.6,0,0,1-1.46.24,3.66,3.66,0,0,1-2.67-1,3.49,3.49,0,0,1-1-2.62,4,4,0,0,1,.42-1.87,3.07,3.07,0,0,1,1.2-1.27,3.37,3.37,0,0,1,1.74-.45,2.85,2.85,0,0,1,2.25.92,3.67,3.67,0,0,1,.82,2.52ZM75.69,32a2.19,2.19,0,0,0-.52,1.3h3.18A2,2,0,0,0,77.93,32a1.41,1.41,0,0,0-1.1-.44A1.51,1.51,0,0,0,75.69,32Z\"});var _ref7=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M83.07,30.51h1.82v1.32H83.07V37.4H81.31V31.83H80V30.51h1.32a3,3,0,0,1,.77-2.23,3.61,3.61,0,0,1,2.39-.83l.69,0,.11,1.31-.66,0a1.78,1.78,0,0,0-1.18.37,1.37,1.37,0,0,0-.36,1.06Z\"});var _ref8=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M86.67,37.08a3,3,0,0,1-1.23-1.26,4.32,4.32,0,0,1,0-3.8,3,3,0,0,1,1.23-1.24,3.74,3.74,0,0,1,1.86-.44,3.7,3.7,0,0,1,1.85.44A3,3,0,0,1,91.61,32a4.41,4.41,0,0,1,0,3.8,3,3,0,0,1-1.23,1.26,3.8,3.8,0,0,1-1.85.43A3.84,3.84,0,0,1,86.67,37.08Zm3.15-1.5a2.55,2.55,0,0,0,.46-1.66,2.58,2.58,0,0,0-.46-1.66,1.55,1.55,0,0,0-1.29-.57,1.59,1.59,0,0,0-1.31.57,2.65,2.65,0,0,0-.45,1.66,2.61,2.61,0,0,0,.45,1.66,1.77,1.77,0,0,0,2.6,0Z\"});var _ref9=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M96.77,33.85l2.91,3.55H97.59l-1.83-2.3-1.82,2.3H91.85l2.89-3.55L92,30.51h2.1l1.65,2.1,1.65-2.1h2.1Z\"});var _ref10=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M107.13,34.44a1.95,1.95,0,0,1-.26,2.48,2.67,2.67,0,0,1-1.7.48H102.3V30.5h2.76a2.6,2.6,0,0,1,1.66.47,1.61,1.61,0,0,1,.59,1.33,1.63,1.63,0,0,1-.29,1,1.67,1.67,0,0,1-.81.6A1.6,1.6,0,0,1,107.13,34.44Zm-4-.88H105a1.87,1.87,0,0,0,1.17-.31,1.1,1.1,0,0,0,.39-.91q0-1.17-1.56-1.17h-1.86Zm3.2,2.88a1.11,1.11,0,0,0,.39-.94c0-.85-.53-1.27-1.59-1.27h-2v2.5h2A2,2,0,0,0,106.29,36.44Z\"});var _ref11=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M111.18,33.2l-.52,0a1.52,1.52,0,0,0-1.06.46,1.44,1.44,0,0,0-.33,1V37.4h-.79V32.63h.78v.84a1.72,1.72,0,0,1,1.57-.93l.28,0Z\"});var _ref12=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M112.33,37.17a2.15,2.15,0,0,1-.79-.87,2.87,2.87,0,0,1-.28-1.31,2.83,2.83,0,0,1,.28-1.3,2,2,0,0,1,.79-.87,2.31,2.31,0,0,1,1.19-.3,2.38,2.38,0,0,1,1.2.3,2,2,0,0,1,.79.87,2.83,2.83,0,0,1,.28,1.3,2.87,2.87,0,0,1-.28,1.31,2.08,2.08,0,0,1-.79.87,2.38,2.38,0,0,1-1.2.3A2.31,2.31,0,0,1,112.33,37.17Zm2.27-.82A2.12,2.12,0,0,0,115,35a2.1,2.1,0,0,0-.38-1.34,1.3,1.3,0,0,0-1.08-.48,1.28,1.28,0,0,0-1.07.48,2,2,0,0,0-.39,1.34,2.11,2.11,0,0,0,.38,1.35,1.28,1.28,0,0,0,1.08.47A1.3,1.3,0,0,0,114.6,36.35Z\"});var _ref13=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M123.09,32.63h.8l-1.77,4.77h-.77L120,33.71l-1.35,3.69h-.75l-1.77-4.77H117l1.35,3.83,1.38-3.83h.68l1.36,3.83Z\"});var _ref14=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M124.19,36.85l.27-.59a2.42,2.42,0,0,0,.77.44,2.84,2.84,0,0,0,.9.13,1.52,1.52,0,0,0,.81-.18.63.63,0,0,0,.09-1,1.44,1.44,0,0,0-.62-.27l-.8-.18a1.86,1.86,0,0,1-.93-.47,1.16,1.16,0,0,1-.32-.82,1.22,1.22,0,0,1,.5-1,2.08,2.08,0,0,1,1.33-.39,2.75,2.75,0,0,1,1,.16,1.9,1.9,0,0,1,.75.46l-.26.58a2.2,2.2,0,0,0-1.44-.56,1.4,1.4,0,0,0-.78.19.67.67,0,0,0-.11,1,1.13,1.13,0,0,0,.55.26l.82.2a2.08,2.08,0,0,1,1,.47,1.13,1.13,0,0,1,.32.83,1.18,1.18,0,0,1-.51,1,2.3,2.3,0,0,1-1.37.37A2.81,2.81,0,0,1,124.19,36.85Z\"});var _ref15=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M132.88,35.14H129.4a1.84,1.84,0,0,0,.45,1.26,1.54,1.54,0,0,0,1.16.42,2.39,2.39,0,0,0,1.53-.56l.26.57a2.23,2.23,0,0,1-.8.47,3.14,3.14,0,0,1-1,.17,2.31,2.31,0,0,1-1.75-.66A2.46,2.46,0,0,1,128.6,35a2.79,2.79,0,0,1,.29-1.29,2.07,2.07,0,0,1,.8-.88,2.18,2.18,0,0,1,1.17-.31,1.84,1.84,0,0,1,1.48.62,2.51,2.51,0,0,1,.54,1.71Zm-3-1.62a1.79,1.79,0,0,0-.44,1.11h2.77a1.79,1.79,0,0,0-.36-1.11,1.21,1.21,0,0,0-1-.39A1.34,1.34,0,0,0,129.86,33.52Z\"});var _ref16=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M136.46,33.2l-.52,0a1.55,1.55,0,0,0-1.07.46,1.49,1.49,0,0,0-.32,1V37.4h-.8V32.63h.78v.84a1.72,1.72,0,0,1,1.57-.93l.29,0Z\"});var _ref17=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M144.43,37.4l-.69-1.62h-3.36l-.7,1.62h-1.27l3.12-6.9h1l3.12,6.9Zm-3.64-2.59h2.53l-1.27-2.94Z\"});var _ref18=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M146.13,30.5h2.54a3.65,3.65,0,0,1,2.63.9,3.41,3.41,0,0,1,.93,2.54,3.41,3.41,0,0,1-.93,2.55,3.61,3.61,0,0,1-2.63.91h-2.54Zm2.46,5.87A2.12,2.12,0,0,0,151,33.94a2.11,2.11,0,0,0-2.38-2.41h-1.2v4.84Z\"});var _ref19=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M153.21,30.5h2.55a3.61,3.61,0,0,1,2.62.9,3.37,3.37,0,0,1,.94,2.54,3.38,3.38,0,0,1-.94,2.55,3.57,3.57,0,0,1-2.62.91h-2.55Zm2.47,5.87a2.13,2.13,0,0,0,2.38-2.43,2.12,2.12,0,0,0-2.38-2.41h-1.21v4.84Z\"});var _ref20=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M160.22,35.27v-1h2.92v1Z\"});var _ref21=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M165.58,37.06a2.92,2.92,0,0,1-1.14-1.24,4.1,4.1,0,0,1-.4-1.88,4.22,4.22,0,0,1,.39-1.87,3,3,0,0,1,1.14-1.23,3.53,3.53,0,0,1,1.76-.43,3.45,3.45,0,0,1,1.74.43,3,3,0,0,1,1.14,1.23,4.22,4.22,0,0,1,.39,1.87,4.1,4.1,0,0,1-.4,1.88,2.86,2.86,0,0,1-1.14,1.24,3.74,3.74,0,0,1-3.48,0Zm3.23-1.24a2.92,2.92,0,0,0,.53-1.88,2.91,2.91,0,0,0-.53-1.87,1.83,1.83,0,0,0-1.48-.65,1.85,1.85,0,0,0-1.5.65,2.91,2.91,0,0,0-.53,1.87,2.92,2.92,0,0,0,.53,1.88,1.83,1.83,0,0,0,1.5.66A1.8,1.8,0,0,0,168.81,35.82Z\"});var _ref22=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M176.22,30.5h1.19v6.9h-.95l-3.7-4.82V37.4h-1.18V30.5h.94l3.7,4.81Z\"});var _ref23=/*#__PURE__*/React.createElement(\"g\",{id:\"_710jxI.tif\",\"data-name\":\"710jxI.tif\"},/*#__PURE__*/React.createElement(\"image\",{id:\"Layer_0\",\"data-name\":\"Layer 0\",width:1200,height:1246,transform:\"translate(7.53 4.04) scale(0.03)\",xlinkHref:\"data:image/png;base64,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\"}));var _ref24=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M64.94,21.35l-.82-1.91H60.21l-.83,1.91H58.24l3.45-7.73h.94l3.44,7.73Zm-4.35-2.81h3.15l-1.57-3.66Z\"});var _ref25=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M70.14,16h1.11l-2.33,5.34h-1L65.62,16h1.16l1.67,4.09Z\"});var _ref26=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M75.46,16.4A2.27,2.27,0,0,1,76,18v3.31H74.92v-.89a1.62,1.62,0,0,1-.62.72,1.9,1.9,0,0,1-1,.24,2.25,2.25,0,0,1-1-.21,1.59,1.59,0,0,1-.68-.6,1.49,1.49,0,0,1-.25-.85,1.34,1.34,0,0,1,.3-.92,1.8,1.8,0,0,1,1-.47,9.55,9.55,0,0,1,1.91-.15h.26v-.31a1.28,1.28,0,0,0-.26-.89,1.12,1.12,0,0,0-.84-.28A3.48,3.48,0,0,0,72,17.3l-.33-.78a3.85,3.85,0,0,1,1-.47,4.06,4.06,0,0,1,1.17-.18A2.16,2.16,0,0,1,75.46,16.4Zm-.94,3.79a1.47,1.47,0,0,0,.39-1.06v-.28h-.2a9,9,0,0,0-1.32.07,1.37,1.37,0,0,0-.65.26.65.65,0,0,0-.2.52.81.81,0,0,0,.28.64,1,1,0,0,0,.72.26A1.25,1.25,0,0,0,74.52,20.19Z\"});var _ref27=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M77.09,13.61h1.27v1.15H77.09Zm.08,7.74V16h1.1v5.35Z\"});var _ref28=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M79.49,21.35V13.62H80.6v7.73Z\"});var _ref29=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M85.64,16.4A2.27,2.27,0,0,1,86.16,18v3.31H85.1v-.89a1.56,1.56,0,0,1-.62.72,1.85,1.85,0,0,1-1,.24,2.18,2.18,0,0,1-1-.21,1.68,1.68,0,0,1-.69-.6,1.56,1.56,0,0,1-.24-.85,1.34,1.34,0,0,1,.3-.92,1.77,1.77,0,0,1,1-.47,9.66,9.66,0,0,1,1.92-.15h.25v-.31a1.28,1.28,0,0,0-.26-.89,1.12,1.12,0,0,0-.84-.28,3.51,3.51,0,0,0-1.82.56l-.33-.78a4,4,0,0,1,1-.47,4.17,4.17,0,0,1,1.17-.18A2.15,2.15,0,0,1,85.64,16.4Zm-.93,3.79a1.51,1.51,0,0,0,.38-1.06v-.28h-.2a8.72,8.72,0,0,0-1.31.07,1.37,1.37,0,0,0-.66.26.69.69,0,0,0-.2.52.85.85,0,0,0,.28.64,1,1,0,0,0,.72.26A1.28,1.28,0,0,0,84.71,20.19Z\"});var _ref30=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M91.46,16.21a2.2,2.2,0,0,1,.84,1,3.34,3.34,0,0,1,.3,1.46,3.4,3.4,0,0,1-.3,1.46,2.26,2.26,0,0,1-.85,1,2.16,2.16,0,0,1-1.23.35,2.13,2.13,0,0,1-1.06-.25,1.67,1.67,0,0,1-.7-.74v.92H87.35V13.62h1.11v3.26a1.64,1.64,0,0,1,.7-.75,2,2,0,0,1,1.06-.26A2.24,2.24,0,0,1,91.46,16.21ZM91.07,20a2.17,2.17,0,0,0,.4-1.41,2.19,2.19,0,0,0-.39-1.39A1.39,1.39,0,0,0,90,16.75a1.35,1.35,0,0,0-1.12.5,2.26,2.26,0,0,0-.38,1.4,2.24,2.24,0,0,0,.38,1.4,1.35,1.35,0,0,0,1.12.5A1.34,1.34,0,0,0,91.07,20Z\"});var _ref31=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M93.5,21.35V13.62h1.11v7.73Z\"});var _ref32=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M100.4,18.86H96.62c.08,1.13.65,1.7,1.69,1.7A2.61,2.61,0,0,0,100,20l.34.77a2.81,2.81,0,0,1-.92.51,3.59,3.59,0,0,1-1.12.18,2.56,2.56,0,0,1-2.77-2.76,3.14,3.14,0,0,1,.33-1.46,2.33,2.33,0,0,1,.91-1,2.47,2.47,0,0,1,1.33-.35,2.17,2.17,0,0,1,1.71.7,2.84,2.84,0,0,1,.61,1.94Zm-3.31-1.78a1.89,1.89,0,0,0-.46,1.14h2.82a1.81,1.81,0,0,0-.38-1.14,1.2,1.2,0,0,0-1-.4A1.31,1.31,0,0,0,97.09,17.08Z\"});var _ref33=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M107.69,16.4a2.27,2.27,0,0,1,.52,1.64v3.31h-1.06v-.89a1.62,1.62,0,0,1-.62.72,1.9,1.9,0,0,1-1,.24,2.22,2.22,0,0,1-1-.21,1.59,1.59,0,0,1-.68-.6,1.49,1.49,0,0,1-.25-.85,1.34,1.34,0,0,1,.3-.92,1.8,1.8,0,0,1,1-.47,9.48,9.48,0,0,1,1.91-.15h.25v-.31a1.28,1.28,0,0,0-.25-.89,1.12,1.12,0,0,0-.84-.28,3.48,3.48,0,0,0-1.82.56l-.33-.78a3.71,3.71,0,0,1,1-.47,4,4,0,0,1,1.16-.18A2.17,2.17,0,0,1,107.69,16.4Zm-.94,3.79a1.47,1.47,0,0,0,.38-1.06v-.28h-.19a9,9,0,0,0-1.32.07,1.37,1.37,0,0,0-.65.26.65.65,0,0,0-.2.52.81.81,0,0,0,.28.64,1,1,0,0,0,.71.26A1.26,1.26,0,0,0,106.75,20.19Z\"});var _ref34=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M109.05,20.74l.34-.8a3,3,0,0,0,1.92.64,1.53,1.53,0,0,0,.82-.18.57.57,0,0,0,.29-.51.59.59,0,0,0-.19-.45,1.59,1.59,0,0,0-.67-.27l-.88-.2a2.12,2.12,0,0,1-1.08-.54,1.3,1.3,0,0,1-.36-.94,1.41,1.41,0,0,1,.59-1.17,2.45,2.45,0,0,1,1.54-.45,3.22,3.22,0,0,1,1.08.18,2.59,2.59,0,0,1,.89.51l-.34.78a2.6,2.6,0,0,0-1.63-.63,1.43,1.43,0,0,0-.8.2.62.62,0,0,0-.29.53.58.58,0,0,0,.18.45,1.26,1.26,0,0,0,.58.26l.91.21a2.17,2.17,0,0,1,1.14.54,1.3,1.3,0,0,1,.36,1,1.34,1.34,0,0,1-.59,1.14,2.67,2.67,0,0,1-1.58.42A3.39,3.39,0,0,1,109.05,20.74Z\"});var _ref35=/*#__PURE__*/React.createElement(\"path\",{className:\"cls-1\",d:\"M185,.75A4.26,4.26,0,0,1,189.25,5V45A4.26,4.26,0,0,1,185,49.25H5A4.26,4.26,0,0,1,.75,45V5A4.26,4.26,0,0,1,5,.75H185M185,0H5A5,5,0,0,0,0,5V45a5,5,0,0,0,5,5H185a5,5,0,0,0,5-5V5a5,5,0,0,0-5-5Z\"});function SvgFirefoxAddOn(_ref,svgRef){let{title,titleId,...props}=_ref;return/*#__PURE__*/React.createElement(\"svg\",_extends({id:\"Ebene_1\",\"data-name\":\"Ebene 1\",xmlns:\"http://www.w3.org/2000/svg\",xmlnsXlink:\"http://www.w3.org/1999/xlink\",viewBox:\"0 0 190 50\",ref:svgRef,\"aria-labelledby\":titleId},props),title?/*#__PURE__*/React.createElement(\"title\",{id:titleId},title):null,_ref2,_ref3,_ref4,_ref5,_ref6,_ref7,_ref8,_ref9,_ref10,_ref11,_ref12,_ref13,_ref14,_ref15,_ref16,_ref17,_ref18,_ref19,_ref20,_ref21,_ref22,_ref23,_ref24,_ref25,_ref26,_ref27,_ref28,_ref29,_ref30,_ref31,_ref32,_ref33,_ref34,_ref35);}const ForwardRef=/*#__PURE__*/React.forwardRef(SvgFirefoxAddOn);export default __webpack_public_path__+\"static/media/Firefox_AddOn.4903ea0e4dd3741887056511df486312.svg\";export{ForwardRef as ReactComponent};","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1,.cls-2{fill:none;}.cls-2,.cls-6{clip-path:url(#clip-path);}.cls-14,.cls-3{fill:#fff;}.cls-4{clip-path:url(#clip-path-4);}.cls-5{fill:#eee;}.cls-7{fill:#db4437;}.cls-8{fill:#0f9d58;}.cls-9{fill:#ffcd40;}.cls-10{fill:#f1f1f1;}.cls-11{fill:#4285f4;}.cls-12,.cls-13{fill:#212121;}.cls-12,.cls-14{fill-opacity:0.05;}.cls-13{fill-opacity:0.02;}.cls-15{fill:#231f20;fill-opacity:0.1;}.cls-16{fill:url(#radial-gradient);}\"), /*#__PURE__*/React.createElement(\"clipPath\", {\n  id: \"clip-path\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-1\",\n  cx: 28.28,\n  cy: 41.21,\n  r: 18.63\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n  id: \"clip-path-4\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M6.7,6.89V41.21a3,3,0,0,0,3,2.94H46.91a2.94,2.94,0,0,0,2.94-2.94V6.89Zm26.48,7.84H23.37a2,2,0,0,1,0-3.92h9.81a2,2,0,1,1,0,3.92Z\"\n})), /*#__PURE__*/React.createElement(\"radialGradient\", {\n  id: \"radial-gradient\",\n  cx: 482.32,\n  cy: -121.9,\n  r: 223.2,\n  gradientTransform: \"matrix(0.25, 0, 0, -0.25, -114, -23.75)\",\n  gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n  offset: 0,\n  stopColor: \"#fff\",\n  stopOpacity: 0.1\n}), /*#__PURE__*/React.createElement(\"stop\", {\n  offset: 1,\n  stopColor: \"#fff\",\n  stopOpacity: 0\n})));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M65.13,37.66a5.47,5.47,0,0,1-3.84-9.29,5.25,5.25,0,0,1,3.84-1.55,4.81,4.81,0,0,1,3.81,1.69l-.92.9a3.51,3.51,0,0,0-2.89-1.32,4,4,0,0,0-2.86,1.15,4,4,0,0,0-1.16,3,4,4,0,0,0,1.16,3,3.94,3.94,0,0,0,2.86,1.14,4.08,4.08,0,0,0,3.19-1.51l.93.93a5.19,5.19,0,0,1-1.79,1.36A5.47,5.47,0,0,1,65.13,37.66Z\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M71.77,27.05v3.28l-.06,1h.06a2.3,2.3,0,0,1,.91-.86A2.6,2.6,0,0,1,74,30.09a2.53,2.53,0,0,1,2,.81,3.27,3.27,0,0,1,.69,2.18v4.34H75.39V33.28c0-1.31-.59-2-1.75-2a1.65,1.65,0,0,0-1.35.66,2.38,2.38,0,0,0-.52,1.53v3.92H70.43V27.05Z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M79.62,37.42H78.29V30.33h1.27v1.15h.06a1.8,1.8,0,0,1,.83-.95,2.41,2.41,0,0,1,1.23-.38,2.43,2.43,0,0,1,1,.18l-.5,1.24a2,2,0,0,0-.71-.1,1.74,1.74,0,0,0-1.28.57,2,2,0,0,0-.56,1.5Z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M83.73,31.17a3.73,3.73,0,0,1,5.25,0,4.1,4.1,0,0,1,0,5.41,3.73,3.73,0,0,1-5.25,0,4.07,4.07,0,0,1,0-5.41Zm1,4.57a2.25,2.25,0,0,0,3.26,0A2.87,2.87,0,0,0,88,32a2.25,2.25,0,0,0-3.26,0,2.9,2.9,0,0,0,0,3.73Z\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M91.08,37.42V30.33h1.27v1h.06a2.44,2.44,0,0,1,.93-.86,2.52,2.52,0,0,1,1.26-.36,2.22,2.22,0,0,1,2.24,1.37,2.78,2.78,0,0,1,2.48-1.37,2.28,2.28,0,0,1,1.9.81,3.43,3.43,0,0,1,.63,2.18v4.34h-1.33V33.28a2.33,2.33,0,0,0-.39-1.52,1.5,1.5,0,0,0-1.19-.45,1.55,1.55,0,0,0-1.29.67,2.37,2.37,0,0,0-.52,1.52v3.92H95.8V33.28a2.33,2.33,0,0,0-.39-1.52,1.5,1.5,0,0,0-1.19-.45,1.58,1.58,0,0,0-1.3.67,2.42,2.42,0,0,0-.51,1.52v3.92Z\"\n});\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M106.63,37.66A3.4,3.4,0,0,1,104,36.58a3.79,3.79,0,0,1-1-2.71,3.9,3.9,0,0,1,1-2.66,3.2,3.2,0,0,1,2.5-1.12,3.31,3.31,0,0,1,2.53,1,3.93,3.93,0,0,1,1,2.75l0,.25h-5.6a2.38,2.38,0,0,0,.71,1.7,2.21,2.21,0,0,0,1.55.62,1.92,1.92,0,0,0,1.94-1.22l1.18.49a3.12,3.12,0,0,1-1.14,1.39A3.33,3.33,0,0,1,106.63,37.66ZM108.55,33a1.91,1.91,0,0,0-.56-1.16,2,2,0,0,0-1.53-.55,2,2,0,0,0-1.28.46,2.44,2.44,0,0,0-.75,1.25Z\"\n});\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M126.1,27.05l-2.76,10.37H122l-2.24-6.83h0l-2.23,6.83h-1.37l-2.88-10.37h1.39l2.19,8.16h.06l2.24-6.77h1.25l2.24,6.77h.06l2.07-8.16Z\"\n});\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M129.57,37.66A3.41,3.41,0,0,1,127,36.58a3.79,3.79,0,0,1-1-2.71,3.9,3.9,0,0,1,1-2.66,3.2,3.2,0,0,1,2.5-1.12,3.3,3.3,0,0,1,2.53,1,3.93,3.93,0,0,1,1,2.75l0,.25h-5.6a2.42,2.42,0,0,0,.71,1.7,2.21,2.21,0,0,0,1.55.62,1.92,1.92,0,0,0,1.94-1.22l1.19.49a3.21,3.21,0,0,1-1.15,1.39A3.32,3.32,0,0,1,129.57,37.66ZM131.48,33a1.91,1.91,0,0,0-.56-1.16,2,2,0,0,0-1.53-.55,2,2,0,0,0-1.28.46,2.44,2.44,0,0,0-.75,1.25Z\"\n});\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M137.87,37.66a3.06,3.06,0,0,1-1.46-.35,2.4,2.4,0,0,1-1-.87h-.06v1h-1.28V27.05h1.34v3.28l-.06,1h.06a2.4,2.4,0,0,1,1-.87,3.06,3.06,0,0,1,1.46-.35,3.13,3.13,0,0,1,2.37,1.09,4.13,4.13,0,0,1,0,5.39A3.13,3.13,0,0,1,137.87,37.66Zm-.22-1.22a2.13,2.13,0,0,0,1.59-.7,2.93,2.93,0,0,0,0-3.73,2.13,2.13,0,0,0-1.59-.7,2.1,2.1,0,0,0-1.6.7,3,3,0,0,0,0,3.73A2.1,2.1,0,0,0,137.65,36.44Z\"\n});\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M148.37,37.66a3.9,3.9,0,0,1-2.21-.74,3.45,3.45,0,0,1-1.41-2.07l1.21-.5a2.81,2.81,0,0,0,.9,1.44,2.18,2.18,0,0,0,1.51.59,2.37,2.37,0,0,0,1.48-.46,1.45,1.45,0,0,0,.62-1.23,1.59,1.59,0,0,0-.62-1.34,6.23,6.23,0,0,0-1.94-.88,5.19,5.19,0,0,1-2.09-1.12,2.37,2.37,0,0,1-.71-1.76,2.56,2.56,0,0,1,.88-1.94,3.25,3.25,0,0,1,2.31-.83,3.31,3.31,0,0,1,2.14.66,3,3,0,0,1,1.07,1.44l-1.21.51a1.89,1.89,0,0,0-.65-.92,2.06,2.06,0,0,0-1.32-.42,2.11,2.11,0,0,0-1.32.43,1.32,1.32,0,0,0-.54,1.07,1.2,1.2,0,0,0,.5,1,4.56,4.56,0,0,0,1.47.72c.51.17.94.33,1.28.48a5.54,5.54,0,0,1,1.05.62,2.42,2.42,0,0,1,.79.95,3.07,3.07,0,0,1,.27,1.33,2.79,2.79,0,0,1-.31,1.34,2.56,2.56,0,0,1-.83,1,4.11,4.11,0,0,1-1.1.52A3.93,3.93,0,0,1,148.37,37.66Z\"\n});\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M155.93,37.54a2.06,2.06,0,0,1-2.29-2.27V31.54H152.4V30.33h1.24V28.15H155v2.18h1.74v1.21H155v3.62c0,.78.32,1.16,1,1.16a1.58,1.58,0,0,0,.61-.11l.46,1.14A2.59,2.59,0,0,1,155.93,37.54Z\"\n});\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M158.54,31.17a3.72,3.72,0,0,1,5.24,0,4.07,4.07,0,0,1,0,5.41,3.72,3.72,0,0,1-5.24,0,4.07,4.07,0,0,1,0-5.41Zm1,4.57a2.25,2.25,0,0,0,3.26,0,2.87,2.87,0,0,0,0-3.73,2.25,2.25,0,0,0-3.26,0,2.87,2.87,0,0,0,0,3.73Z\"\n});\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M167.22,37.42h-1.34V30.33h1.28v1.15h.06a1.8,1.8,0,0,1,.83-.95,2.4,2.4,0,0,1,1.22-.38,2.45,2.45,0,0,1,1,.18l-.5,1.24a2,2,0,0,0-.71-.1,1.75,1.75,0,0,0-1.29.57,2.06,2.06,0,0,0-.55,1.5Z\"\n});\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M173.92,37.66a3.4,3.4,0,0,1-2.61-1.08,3.79,3.79,0,0,1-1-2.71,3.9,3.9,0,0,1,1-2.66,3.18,3.18,0,0,1,2.5-1.12,3.31,3.31,0,0,1,2.53,1,3.92,3.92,0,0,1,.94,2.75v.25h-5.61a2.43,2.43,0,0,0,.72,1.7,2.19,2.19,0,0,0,1.54.62,1.9,1.9,0,0,0,1.94-1.22l1.19.49a3.12,3.12,0,0,1-1.14,1.39A3.36,3.36,0,0,1,173.92,37.66ZM175.83,33a1.85,1.85,0,0,0-.55-1.16,2,2,0,0,0-1.53-.55,2,2,0,0,0-1.28.46,2.38,2.38,0,0,0-.75,1.25Z\"\n});\nvar _ref17 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M60.51,21.32l3-7.85h1.14l3,7.85H66.46l-.76-2.13H62.4l-.77,2.13Zm2.23-3.07h2.61l-1.28-3.54h0Z\"\n});\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M69.37,21.32,67.2,16h1.1l1.58,4.16h0L71.5,16h1.07l-2.19,5.37Z\"\n});\nvar _ref19 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M74.82,21.5a2.11,2.11,0,0,1-1.43-.5,1.64,1.64,0,0,1-.58-1.3,1.62,1.62,0,0,1,.68-1.38,2.81,2.81,0,0,1,1.68-.5,2.89,2.89,0,0,1,1.46.33V18a1.2,1.2,0,0,0-.41-.95,1.44,1.44,0,0,0-1-.36,1.54,1.54,0,0,0-.8.21,1.09,1.09,0,0,0-.49.57L73,17.08a2.17,2.17,0,0,1,.74-.9,2.34,2.34,0,0,1,1.44-.41,2.44,2.44,0,0,1,1.71.61,2.12,2.12,0,0,1,.68,1.7v3.24h-1v-.75h0A2,2,0,0,1,74.82,21.5Zm.16-.93a1.65,1.65,0,0,0,1.14-.46,1.45,1.45,0,0,0,.51-1.1,2,2,0,0,0-1.28-.35,1.69,1.69,0,0,0-1.11.31,1,1,0,0,0-.37.75.7.7,0,0,0,.34.62A1.27,1.27,0,0,0,75,20.57Z\"\n});\nvar _ref20 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M79.83,14.6a.71.71,0,1,1,.21-.5A.69.69,0,0,1,79.83,14.6Zm0,6.72h-1V16h1Z\"\n});\nvar _ref21 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M82.15,21.32h-1V13.47h1Z\"\n});\nvar _ref22 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M85,21.5a2.16,2.16,0,0,1-1.44-.5,1.75,1.75,0,0,1,.11-2.68,2.77,2.77,0,0,1,1.68-.5,2.86,2.86,0,0,1,1.45.33V18a1.2,1.2,0,0,0-.4-.95,1.44,1.44,0,0,0-1-.36,1.51,1.51,0,0,0-.79.21,1.09,1.09,0,0,0-.49.57l-.92-.39a2.14,2.14,0,0,1,.73-.9,2.4,2.4,0,0,1,1.45-.41,2.44,2.44,0,0,1,1.71.61,2.15,2.15,0,0,1,.68,1.7v3.24h-1v-.75h0A2,2,0,0,1,85,21.5Zm.16-.93a1.62,1.62,0,0,0,1.13-.46,1.45,1.45,0,0,0,.51-1.1,1.94,1.94,0,0,0-1.28-.35,1.69,1.69,0,0,0-1.11.31,1,1,0,0,0-.37.75.72.72,0,0,0,.34.62A1.33,1.33,0,0,0,85.19,20.57Z\"\n});\nvar _ref23 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M91.78,21.5a2.21,2.21,0,0,1-1.1-.27,1.75,1.75,0,0,1-.73-.66h0v.75h-1V13.47h1V16l0,.74h0a1.8,1.8,0,0,1,.73-.65,2.21,2.21,0,0,1,1.1-.27,2.38,2.38,0,0,1,1.8.83,2.88,2.88,0,0,1,.75,2,2.89,2.89,0,0,1-.75,2A2.38,2.38,0,0,1,91.78,21.5Zm-.17-.93A1.59,1.59,0,0,0,92.82,20a1.93,1.93,0,0,0,.5-1.41,1.92,1.92,0,0,0-.5-1.4,1.6,1.6,0,0,0-1.21-.54,1.63,1.63,0,0,0-1.21.53,2,2,0,0,0-.5,1.41,2,2,0,0,0,.5,1.42A1.62,1.62,0,0,0,91.61,20.57Z\"\n});\nvar _ref24 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M96.21,21.32h-1V13.47h1Z\"\n});\nvar _ref25 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M99.81,21.5a2.54,2.54,0,0,1-2-.82,2.86,2.86,0,0,1-.77-2.05,3,3,0,0,1,.74-2,2.4,2.4,0,0,1,1.89-.85,2.49,2.49,0,0,1,1.92.78,3,3,0,0,1,.72,2.08l0,.19H98.08a1.82,1.82,0,0,0,.54,1.28,1.65,1.65,0,0,0,1.17.47,1.44,1.44,0,0,0,1.47-.92l.9.38a2.41,2.41,0,0,1-.87,1A2.51,2.51,0,0,1,99.81,21.5ZM101.26,18a1.42,1.42,0,0,0-.42-.88,1.51,1.51,0,0,0-1.16-.42,1.44,1.44,0,0,0-1,.36,1.75,1.75,0,0,0-.56.94Z\"\n});\nvar _ref26 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M106.76,14.6a.67.67,0,0,1-.5.21.66.66,0,0,1-.5-.21.71.71,0,0,1,0-1,.66.66,0,0,1,.5-.21.67.67,0,0,1,.5.21.71.71,0,0,1,0,1Zm0,6.72h-1V16h1Z\"\n});\nvar _ref27 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M109,16v.74h0a1.74,1.74,0,0,1,.69-.65,2,2,0,0,1,1-.27,1.9,1.9,0,0,1,1.52.62,2.43,2.43,0,0,1,.53,1.64v3.29h-1V18.19c0-1-.44-1.5-1.33-1.5a1.27,1.27,0,0,0-1,.5,1.85,1.85,0,0,0-.39,1.16v3h-1V16Z\"\n});\nvar _ref28 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M118.76,21.41A1.57,1.57,0,0,1,117,19.69V16.87h-.94V16H117V14.3h1V16h1.32v.92H118v2.74c0,.59.24.88.73.88a1.08,1.08,0,0,0,.46-.09l.35.87A2.14,2.14,0,0,1,118.76,21.41Z\"\n});\nvar _ref29 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M121.38,13.47V16l0,.74h0a1.74,1.74,0,0,1,.69-.65,2,2,0,0,1,1-.27,1.9,1.9,0,0,1,1.52.62,2.43,2.43,0,0,1,.52,1.64v3.29h-1V18.19c0-1-.45-1.5-1.33-1.5a1.24,1.24,0,0,0-1,.5,1.85,1.85,0,0,0-.39,1.16v3h-1V13.47Z\"\n});\nvar _ref30 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M128.74,21.5a2.57,2.57,0,0,1-2-.82,2.9,2.9,0,0,1-.76-2.05,3,3,0,0,1,.74-2,2.4,2.4,0,0,1,1.89-.85,2.49,2.49,0,0,1,1.92.78,3,3,0,0,1,.71,2.08v.19H127a1.82,1.82,0,0,0,.54,1.28,1.63,1.63,0,0,0,1.17.47,1.45,1.45,0,0,0,1.47-.92l.9.38a2.48,2.48,0,0,1-.87,1A2.51,2.51,0,0,1,128.74,21.5ZM130.19,18a1.42,1.42,0,0,0-.42-.88,1.51,1.51,0,0,0-1.16-.42,1.42,1.42,0,0,0-1,.36,1.75,1.75,0,0,0-.56.94Z\"\n});\nvar _ref31 = /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-4\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-5\",\n  d: \"M6.7,6.89H49.85V44.15H6.7Z\"\n}));\nvar _ref32 = /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-4\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M33.18,10.81H23.37a2,2,0,0,0,0,3.92h9.81a2,2,0,1,0,0-3.92Z\"\n}));\nvar _ref33 = /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-4\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-6\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-7\",\n  d: \"M12.6,22.58V45.44h8.34l7.34-12.7H46.91V22.58Zm0,0V45.44h8.34l7.34-12.7H46.91V22.58Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-8\",\n  d: \"M9.65,59.84H27.38l8.23-8.23V45.45H20.94L9.65,26.07Zm0,0H27.38l8.23-8.23V45.45H20.94L9.65,26.07Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-9\",\n  d: \"M28.28,32.74l7.33,12.7-8.23,14.4H46.91V32.74Zm0,0,7.33,12.7-8.23,14.4H46.91V32.74Z\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-10\",\n  cx: 28.28,\n  cy: 41.21,\n  r: 8.47\n}), /*#__PURE__*/React.createElement(\"circle\", {\n  className: \"cls-11\",\n  cx: 28.28,\n  cy: 41.21,\n  r: 6.78\n})), /*#__PURE__*/React.createElement(\"g\", {\n  className: \"cls-4\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-12\",\n  d: \"M6.7,6.89H49.85V25.52H6.7Z\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-13\",\n  d: \"M6.7,25.27H49.85v.25H6.7Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-14\",\n  d: \"M6.7,25.52H49.85v.24H6.7Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-13\",\n  d: \"M33.18,14.73H23.37a2,2,0,0,1-1.95-1.84s0,.08,0,.13a2,2,0,0,0,2,2h9.81a2,2,0,0,0,2-2,.57.57,0,0,0,0-.13A2,2,0,0,1,33.18,14.73ZM6.7,6.89v.24H49.85V6.89Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-15\",\n  d: \"M23.37,10.81h9.81a2,2,0,0,1,2,1.84.49.49,0,0,0,0-.12,2,2,0,0,0-2-2H23.37a2,2,0,0,0-2,2s0,.08,0,.12A2,2,0,0,1,23.37,10.81Zm23.54,33.1H9.65A3,3,0,0,1,6.7,41v.24a3,3,0,0,0,3,2.94H46.91a2.94,2.94,0,0,0,2.94-2.94V41A3,3,0,0,1,46.91,43.91Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-16\",\n  d: \"M6.7,6.89V41.21a3,3,0,0,0,3,2.94H46.91a2.94,2.94,0,0,0,2.94-2.94V6.89Zm26.48,7.84H23.37a2,2,0,0,1,0-3.92h9.81a2,2,0,1,1,0,3.92Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M4.74,2H51.81V49.06H4.74Z\"\n}));\nvar _ref34 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-3\",\n  d: \"M185,.75A4.26,4.26,0,0,1,189.25,5V45A4.26,4.26,0,0,1,185,49.25H5A4.26,4.26,0,0,1,.75,45V5A4.26,4.26,0,0,1,5,.75H185M185,0H5A5,5,0,0,0,0,5V45a5,5,0,0,0,5,5H185a5,5,0,0,0,5-5V5a5,5,0,0,0-5-5Z\"\n});\nfunction SvgGoogleWebStore(_ref, svgRef) {\n  let {\n    title,\n    titleId,\n    ...props\n  } = _ref;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"Ebene_1\",\n    \"data-name\": \"Ebene 1\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n    viewBox: \"0 0 190 50\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26, _ref27, _ref28, _ref29, _ref30, _ref31, _ref32, _ref33, _ref34);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGoogleWebStore);\nexport default __webpack_public_path__ + \"static/media/Google_WebStore.f849daaaad90071487c387fc0bbf9697.svg\";\nexport { ForwardRef as ReactComponent };","function _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); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1{fill:#fff;}\"));\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Ebene_2\",\n  \"data-name\": \"Ebene 2\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  id: \"Ebene_2-2\",\n  \"data-name\": \"Ebene 2\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M38.55,19.64A2.45,2.45,0,0,1,41,22a58.39,58.39,0,0,0,24.23-6.36,30.55,30.55,0,0,0-53.34,0A58.39,58.39,0,0,0,36.11,22,2.45,2.45,0,0,1,38.55,19.64Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M66.33,17.84a60.86,60.86,0,0,1-15.56,5.44V38.84a2.45,2.45,0,1,1-4.89,0V24c-1.61.2-3.24.35-4.89.42V41.29a2.44,2.44,0,0,1-4.88,0V24.46c-1.65-.07-3.28-.22-4.89-.42v14.8a2.45,2.45,0,1,1-4.89,0V23.28a60.86,60.86,0,0,1-15.56-5.44,30.55,30.55,0,1,0,55.56,0Z\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n  className: \"cls-1\",\n  x: 0.21,\n  y: 90.57,\n  width: 76.69,\n  height: 0.33,\n  rx: 0.08\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M4,85.08A5.53,5.53,0,0,1,1.8,84.7a3.68,3.68,0,0,1-1.34-.89A1.37,1.37,0,0,1,0,83a.56.56,0,0,1,.08-.26.67.67,0,0,1,.18-.22.32.32,0,0,1,.2-.08c.12,0,.24.09.37.25a5.77,5.77,0,0,0,.52.59,2.91,2.91,0,0,0,.94.58,4,4,0,0,0,1.57.25,3.91,3.91,0,0,0,1.72-.34,2.36,2.36,0,0,0,1.07-1A3.4,3.4,0,0,0,7,81.14a3.32,3.32,0,0,0-.37-1.66,3.07,3.07,0,0,0-1-1,6.29,6.29,0,0,0-1.3-.64q-.7-.24-1.41-.51a6.29,6.29,0,0,1-1.3-.64,2.86,2.86,0,0,1-1-1.05,3.39,3.39,0,0,1-.37-1.71,3.55,3.55,0,0,1,.39-1.76,2.94,2.94,0,0,1,1-1.07,4,4,0,0,1,1.31-.54,6.45,6.45,0,0,1,1.35-.14,7.49,7.49,0,0,1,1.17.09,9.33,9.33,0,0,1,1,.25,2.85,2.85,0,0,1,.76.35.54.54,0,0,1,.27.42.61.61,0,0,1-.06.25.69.69,0,0,1-.16.22.29.29,0,0,1-.23.1,1.1,1.1,0,0,1-.48-.18,4,4,0,0,0-.88-.38,4.47,4.47,0,0,0-1.45-.19A4.67,4.67,0,0,0,3,71.56a2.42,2.42,0,0,0-1.16.75,2.27,2.27,0,0,0-.46,1.53,2.32,2.32,0,0,0,.37,1.38,2.77,2.77,0,0,0,1,.83A8.06,8.06,0,0,0,4,76.6c.46.15.93.33,1.41.53a5.58,5.58,0,0,1,1.3.75,3.39,3.39,0,0,1,.95,1.21,5.31,5.31,0,0,1-.16,4.26,3.18,3.18,0,0,1-1.43,1.31A4.9,4.9,0,0,1,4,85.08Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M12,85a.61.61,0,0,1-.35-.11.36.36,0,0,1-.15-.31V70.82a.37.37,0,0,1,.12-.27.54.54,0,0,1,.32-.12h3.6a4.84,4.84,0,0,1,2,.4A3.08,3.08,0,0,1,19,72.16a4.8,4.8,0,0,1,.52,2.42v.22A4.83,4.83,0,0,1,19,77.22a3.23,3.23,0,0,1-1.45,1.34,4.93,4.93,0,0,1-2,.41h-3v5.57a.36.36,0,0,1-.15.31A.62.62,0,0,1,12,85Zm.49-6.9h3a3,3,0,0,0,2.2-.8,3.32,3.32,0,0,0,.8-2.44v-.24a3.28,3.28,0,0,0-.8-2.42,3,3,0,0,0-2.2-.78h-3Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M26.66,85.08a4.74,4.74,0,0,1-2-.42,3.19,3.19,0,0,1-1.43-1.32,4.82,4.82,0,0,1-.53-2.42V74.58a4.82,4.82,0,0,1,.53-2.42,3.19,3.19,0,0,1,1.43-1.32,4.74,4.74,0,0,1,2-.41,4.88,4.88,0,0,1,2.05.41,3.22,3.22,0,0,1,1.44,1.32,4.83,4.83,0,0,1,.52,2.42v6.34a4.83,4.83,0,0,1-.52,2.42,3.22,3.22,0,0,1-1.44,1.32A4.88,4.88,0,0,1,26.66,85.08Zm0-1a3,3,0,0,0,2.21-.78,3.24,3.24,0,0,0,.81-2.42V74.58a3.28,3.28,0,0,0-.8-2.42,3,3,0,0,0-2.22-.78,3,3,0,0,0-2.21.78,3.28,3.28,0,0,0-.79,2.42v6.34a3.28,3.28,0,0,0,.79,2.42A3,3,0,0,0,26.66,84.12Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M42.2,85a.43.43,0,0,1-.36-.25l-.27-.45-3.12-6.1H35.7v6.36a.35.35,0,0,1-.16.31.59.59,0,0,1-.33.11.58.58,0,0,1-.35-.11.36.36,0,0,1-.15-.31V70.82a.36.36,0,0,1,.11-.27.46.46,0,0,1,.31-.12h3.42a6,6,0,0,1,2.06.34A3,3,0,0,1,42.14,72a4,4,0,0,1,.58,2.31,4.24,4.24,0,0,1-.43,2,2.9,2.9,0,0,1-1.15,1.2,4.74,4.74,0,0,1-1.64.55l3.18,6.16a.31.31,0,0,1,0,.12.38.38,0,0,1,0,.1.44.44,0,0,1-.08.25.91.91,0,0,1-.2.19A.47.47,0,0,1,42.2,85Zm-6.5-7.72h2.85a3.61,3.61,0,0,0,2.29-.68,2.72,2.72,0,0,0,.89-2.28,2.65,2.65,0,0,0-.89-2.24,3.67,3.67,0,0,0-2.29-.68H35.7Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M53.49,85a.44.44,0,0,1-.36-.25l-.27-.45-3.12-6.1H47v6.36a.35.35,0,0,1-.16.31.57.57,0,0,1-.33.11.58.58,0,0,1-.35-.11.36.36,0,0,1-.15-.31V70.82a.4.4,0,0,1,.11-.27.46.46,0,0,1,.31-.12h3.42a6,6,0,0,1,2.06.34A3,3,0,0,1,53.43,72,4,4,0,0,1,54,74.28a4.24,4.24,0,0,1-.43,2,2.9,2.9,0,0,1-1.15,1.2,4.74,4.74,0,0,1-1.64.55L54,84.24a.31.31,0,0,1,.05.12.38.38,0,0,1,0,.1.44.44,0,0,1-.08.25.91.91,0,0,1-.2.19A.47.47,0,0,1,53.49,85ZM47,77.26h2.85a3.61,3.61,0,0,0,2.29-.68A2.72,2.72,0,0,0,53,74.3a2.65,2.65,0,0,0-.89-2.24,3.67,3.67,0,0,0-2.29-.68H47Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M56.7,85a.57.57,0,0,1-.25-.06.57.57,0,0,1-.21-.15.31.31,0,0,1-.08-.23.25.25,0,0,1,0-.12l4.23-13.74a.43.43,0,0,1,.22-.27.68.68,0,0,1,.34-.08.76.76,0,0,1,.35.09.42.42,0,0,1,.23.26L65.74,84.4a.5.5,0,0,1,0,.12.32.32,0,0,1-.09.21.62.62,0,0,1-.22.17.6.6,0,0,1-.27.06.48.48,0,0,1-.24-.07.34.34,0,0,1-.15-.23l-1-3.16H58.09l-1,3.16a.35.35,0,0,1-.16.23A.6.6,0,0,1,56.7,85Zm1.67-4.38h5.16L61,72.09Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M69.3,85a.61.61,0,0,1-.35-.11.36.36,0,0,1-.15-.31V70.84a.35.35,0,0,1,.15-.33.67.67,0,0,1,.35-.08.52.52,0,0,1,.33.12,1.35,1.35,0,0,1,.26.32,2.72,2.72,0,0,1,.2.37l5.77,11.35V70.82a.32.32,0,0,1,.15-.29.58.58,0,0,1,.35-.1.56.56,0,0,1,.33.1.31.31,0,0,1,.16.29V84.54a.35.35,0,0,1-.16.31.57.57,0,0,1-.33.11.53.53,0,0,1-.42-.25,3.81,3.81,0,0,1-.3-.49L69.8,72.77V84.54a.37.37,0,0,1-.16.31A.62.62,0,0,1,69.3,85Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M.49,104.11a.28.28,0,0,1-.18-.06.21.21,0,0,1-.07-.16v-7.6a.19.19,0,0,1,.07-.16.28.28,0,0,1,.18-.06.29.29,0,0,1,.19.06.19.19,0,0,1,.07.16v5.29L3.46,99.2a.24.24,0,0,1,.26,0,.3.3,0,0,1,.1.07.33.33,0,0,1,0,.14s0,.06,0,.09a.13.13,0,0,1-.07.08L2.17,101l1.88,2.77a.15.15,0,0,1,0,.11.2.2,0,0,1,0,.13.32.32,0,0,1-.1.1.28.28,0,0,1-.13,0,.19.19,0,0,1-.17-.1L1.79,101.3l-1,.91v1.68a.21.21,0,0,1-.07.16A.29.29,0,0,1,.49,104.11Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M5.67,97.6a.41.41,0,0,1-.39-.39.36.36,0,0,1,.12-.27.45.45,0,0,1,.27-.1.41.41,0,0,1,.28.1.35.35,0,0,1,.11.27.36.36,0,0,1-.11.27A.35.35,0,0,1,5.67,97.6Zm0,6.51a.25.25,0,0,1-.17-.06.23.23,0,0,1-.08-.16V99.37a.19.19,0,0,1,.08-.15.25.25,0,0,1,.17-.06.29.29,0,0,1,.19.06.19.19,0,0,1,.08.15v4.52a.23.23,0,0,1-.08.16A.29.29,0,0,1,5.67,104.11Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M8.18,104.11a.24.24,0,0,1-.17-.06.23.23,0,0,1-.08-.16v-7.6A.19.19,0,0,1,8,96.13a.24.24,0,0,1,.17-.06.29.29,0,0,1,.19.06.19.19,0,0,1,.08.16v7.6a.23.23,0,0,1-.08.16A.29.29,0,0,1,8.18,104.11Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M12,104.11a1.73,1.73,0,0,1-1.18-.35,1.45,1.45,0,0,1-.41-1.14V97a.21.21,0,0,1,.08-.17.37.37,0,0,1,.17,0,.41.41,0,0,1,.19,0,.21.21,0,0,1,.07.17v2.18h1.4a.18.18,0,0,1,.14.06.24.24,0,0,1,.06.17.2.2,0,0,1-.06.15.16.16,0,0,1-.14.07h-1.4v3a1,1,0,0,0,.25.78,1.21,1.21,0,0,0,.83.23h.27a.24.24,0,0,1,.18.07.27.27,0,0,1,0,.34.24.24,0,0,1-.18.07Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M15.22,104.18a2.62,2.62,0,0,1-.84-.12,1.76,1.76,0,0,1-.55-.29.43.43,0,0,1-.2-.31.19.19,0,0,1,0-.1.36.36,0,0,1,.07-.1.18.18,0,0,1,.09,0,.39.39,0,0,1,.24.12,1.74,1.74,0,0,0,.4.25,1.84,1.84,0,0,0,.75.13,1.32,1.32,0,0,0,.89-.24.79.79,0,0,0,.26-.57.93.93,0,0,0-.18-.6,1.32,1.32,0,0,0-.49-.33l-.64-.2a4.29,4.29,0,0,1-.63-.23,1.18,1.18,0,0,1-.49-.39,1.06,1.06,0,0,1-.19-.68,1.41,1.41,0,0,1,.16-.64,1.46,1.46,0,0,1,.52-.53,1.79,1.79,0,0,1,.92-.21,2.62,2.62,0,0,1,.64.07,1.9,1.9,0,0,1,.51.17c.13.08.2.15.2.23a.21.21,0,0,1,0,.11.3.3,0,0,1-.07.11.15.15,0,0,1-.12,0,.46.46,0,0,1-.21-.07,1.8,1.8,0,0,0-.36-.14,1.73,1.73,0,0,0-.54-.07,1.23,1.23,0,0,0-.65.15.81.81,0,0,0-.36.35.93.93,0,0,0-.11.41.65.65,0,0,0,.19.5,1.36,1.36,0,0,0,.49.27l.63.2a3.27,3.27,0,0,1,.64.25,1.29,1.29,0,0,1,.49.44,1.36,1.36,0,0,1,.18.76,1.15,1.15,0,0,1-.43.94A1.86,1.86,0,0,1,15.22,104.18Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M23.14,104.22a2.51,2.51,0,0,1-1.27-.3,2.14,2.14,0,0,1-.8-.81,2.22,2.22,0,0,1-.28-1.1,2,2,0,0,1,.22-1,2.18,2.18,0,0,1,.55-.69,2.32,2.32,0,0,1,.69-.43,6.38,6.38,0,0,1-.6-.84A1.94,1.94,0,0,1,21.37,98a1.68,1.68,0,0,1,.25-1,1.55,1.55,0,0,1,.67-.6,2,2,0,0,1,.9-.21,1.91,1.91,0,0,1,.92.19,1.69,1.69,0,0,1,.53.42.64.64,0,0,1,.18.35.21.21,0,0,1-.07.17.24.24,0,0,1-.18.07c-.06,0-.11,0-.17-.11s-.13-.16-.22-.26a1.13,1.13,0,0,0-.36-.27,1.41,1.41,0,0,0-.59-.11,1.26,1.26,0,0,0-.95.37,1.38,1.38,0,0,0-.35,1,1.74,1.74,0,0,0,.14.69,2.65,2.65,0,0,0,.36.6c.14.19.3.37.46.56l2.25,2.47a4.17,4.17,0,0,0,.3-1.1c0-.38.07-.69.08-.94a.28.28,0,0,1,.06-.2.24.24,0,0,1,.19-.06.18.18,0,0,1,.16.08.35.35,0,0,1,.06.23c0,.13,0,.33,0,.59a6,6,0,0,1-.14.85,3.66,3.66,0,0,1-.34.92l1,1.07,0,.08a.13.13,0,0,1,0,.06.18.18,0,0,1-.07.15.21.21,0,0,1-.16.07l-.08,0-.08-.06-.9-1a2.63,2.63,0,0,1-.82.77A2.37,2.37,0,0,1,23.14,104.22Zm.08-.49a1.79,1.79,0,0,0,1-.27,2,2,0,0,0,.65-.67l-2.35-2.52a5.32,5.32,0,0,0-.53.35,2.08,2.08,0,0,0-.49.53,1.42,1.42,0,0,0-.2.8,1.76,1.76,0,0,0,.22.87,1.62,1.62,0,0,0,.64.66A2.09,2.09,0,0,0,23.22,103.73Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M32.35,104.18a2.28,2.28,0,0,1-1.11-.25,1.57,1.57,0,0,1-.65-.7,2.25,2.25,0,0,1-.22-1V101a2.15,2.15,0,0,1,.22-1,1.52,1.52,0,0,1,.65-.7,2.17,2.17,0,0,1,1.11-.25,2.12,2.12,0,0,1,.75.11,1.79,1.79,0,0,1,.5.25.39.39,0,0,1,.18.28.3.3,0,0,1,0,.11.22.22,0,0,1-.09.1.16.16,0,0,1-.12,0,.36.36,0,0,1-.21-.11,1.45,1.45,0,0,0-.34-.2,1.4,1.4,0,0,0-.61-.1,1.46,1.46,0,0,0-1.1.39,1.5,1.5,0,0,0-.38,1.07v1.2a1.34,1.34,0,0,0,1.49,1.45,1.61,1.61,0,0,0,.65-.1,1.44,1.44,0,0,0,.34-.21.37.37,0,0,1,.23-.11.17.17,0,0,1,.12,0l.08.09a.19.19,0,0,1,0,.12q0,.1-.18.27a1.68,1.68,0,0,1-.52.27A2.6,2.6,0,0,1,32.35,104.18Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M35.59,104.11a.28.28,0,0,1-.18-.06.26.26,0,0,1-.07-.16V99.37a.21.21,0,0,1,.07-.15.28.28,0,0,1,.18-.06.29.29,0,0,1,.19.06.2.2,0,0,1,.06.15v.54a2.06,2.06,0,0,1,.33-.4,1.63,1.63,0,0,1,.48-.3,1.57,1.57,0,0,1,.63-.11h.38a.2.2,0,0,1,.16.07.27.27,0,0,1,0,.34.2.2,0,0,1-.16.07h-.38a1.41,1.41,0,0,0-.68.18,1.44,1.44,0,0,0-.54.53,1.54,1.54,0,0,0-.2.82v2.78a.23.23,0,0,1-.08.16A.29.29,0,0,1,35.59,104.11Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M41,104.18a2.51,2.51,0,0,1-1.13-.24,1.89,1.89,0,0,1-.77-.68,1.82,1.82,0,0,1-.29-1V101A1.75,1.75,0,0,1,39,100a2.1,2.1,0,0,1,.7-.69,1.89,1.89,0,0,1,1-.25,1.92,1.92,0,0,1,.95.24,2,2,0,0,1,.7.68,1.78,1.78,0,0,1,.27,1,.92.92,0,0,1-.14.56.53.53,0,0,1-.33.21,2.74,2.74,0,0,1-.43,0H39.29v.44a1.3,1.3,0,0,0,.48,1.06,1.87,1.87,0,0,0,1.21.39,1.66,1.66,0,0,0,.66-.1,1.9,1.9,0,0,0,.36-.21.36.36,0,0,1,.23-.1.16.16,0,0,1,.12,0,.28.28,0,0,1,.09.1.23.23,0,0,1,0,.11c0,.07-.06.15-.18.26a1.68,1.68,0,0,1-.52.27A2.78,2.78,0,0,1,41,104.18Zm-1.67-2.81h2.23a1,1,0,0,0,.48-.07.35.35,0,0,0,.11-.3,1.53,1.53,0,0,0-.17-.69,1.49,1.49,0,0,0-.49-.54,1.37,1.37,0,0,0-.75-.21,1.33,1.33,0,0,0-.71.19,1.37,1.37,0,0,0-.7,1.19Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M45.89,104.18a1.68,1.68,0,0,1-.92-.27,2.16,2.16,0,0,1-.69-.72,1.91,1.91,0,0,1-.26-1V101a1.88,1.88,0,0,1,.26-1,2,2,0,0,1,.69-.7,1.79,1.79,0,0,1,.94-.25,1.54,1.54,0,0,1,.88.24,1.79,1.79,0,0,1,.52.55v-3.6a.17.17,0,0,1,.08-.16.28.28,0,0,1,.18-.06.24.24,0,0,1,.18.06.19.19,0,0,1,.07.16v7.6a.21.21,0,0,1-.07.16.24.24,0,0,1-.18.06.27.27,0,0,1-.17-.06.23.23,0,0,1-.08-.16v-.51a1.4,1.4,0,0,1-.55.56A1.69,1.69,0,0,1,45.89,104.18Zm0-.49a1.23,1.23,0,0,0,.71-.2,1.7,1.7,0,0,0,.49-.47.82.82,0,0,0,.18-.43V101a1.45,1.45,0,0,0-.2-.77,1.36,1.36,0,0,0-.51-.5,1.41,1.41,0,0,0-.66-.17,1.22,1.22,0,0,0-.69.21,1.64,1.64,0,0,0-.52.53,1.34,1.34,0,0,0-.19.7v1.22a1.37,1.37,0,0,0,.19.7,1.68,1.68,0,0,0,.51.55A1.21,1.21,0,0,0,45.93,103.69Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M51.74,104.18a2.51,2.51,0,0,1-1.13-.24,1.89,1.89,0,0,1-.77-.68,1.82,1.82,0,0,1-.29-1V101a1.75,1.75,0,0,1,.27-.95,2.13,2.13,0,0,1,.71-.69,1.86,1.86,0,0,1,1-.25,1.91,1.91,0,0,1,.94.24,2,2,0,0,1,.7.68,1.78,1.78,0,0,1,.27,1,1,1,0,0,1-.13.56.58.58,0,0,1-.34.21,2.74,2.74,0,0,1-.43,0H50.07v.44a1.3,1.3,0,0,0,.48,1.06,1.87,1.87,0,0,0,1.21.39,1.63,1.63,0,0,0,.66-.1,1.9,1.9,0,0,0,.36-.21.36.36,0,0,1,.23-.1.16.16,0,0,1,.12,0,.28.28,0,0,1,.09.1.23.23,0,0,1,0,.11c0,.07-.06.15-.18.26a1.68,1.68,0,0,1-.52.27A2.78,2.78,0,0,1,51.74,104.18Zm-1.67-2.81h2.24a1,1,0,0,0,.47-.07.35.35,0,0,0,.11-.3,1.41,1.41,0,0,0-.17-.69,1.49,1.49,0,0,0-.49-.54,1.43,1.43,0,0,0-1.46,0,1.37,1.37,0,0,0-.7,1.19Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M55.24,104.11a.24.24,0,0,1-.17-.06.23.23,0,0,1-.08-.16V99.37a.19.19,0,0,1,.08-.15.24.24,0,0,1,.17-.06.29.29,0,0,1,.19.06.21.21,0,0,1,.07.15v.52a1.83,1.83,0,0,1,.53-.55,1.49,1.49,0,0,1,.87-.24,1.76,1.76,0,0,1,.94.25,2,2,0,0,1,.68.7,1.79,1.79,0,0,1,.26,1v2.87a.19.19,0,0,1-.08.17.27.27,0,0,1-.18,0,.28.28,0,0,1-.17,0,.21.21,0,0,1-.08-.17V101a1.35,1.35,0,0,0-.2-.7,1.72,1.72,0,0,0-.51-.53,1.23,1.23,0,0,0-.7-.21,1.33,1.33,0,0,0-.64.17,1.41,1.41,0,0,0-.71,1.27v2.87a.23.23,0,0,1-.08.16A.29.29,0,0,1,55.24,104.11Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M62.2,104.11a1.73,1.73,0,0,1-1.18-.35,1.42,1.42,0,0,1-.41-1.14V97a.21.21,0,0,1,.08-.17.37.37,0,0,1,.17,0,.35.35,0,0,1,.18,0,.19.19,0,0,1,.08.17v2.18h1.4a.2.2,0,0,1,.14.06.24.24,0,0,1,.06.17.2.2,0,0,1-.06.15.17.17,0,0,1-.14.07h-1.4v3a1,1,0,0,0,.25.78,1.21,1.21,0,0,0,.83.23h.27a.21.21,0,0,1,.17.07.24.24,0,0,1,0,.34.21.21,0,0,1-.17.07Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M64.38,97.6a.38.38,0,0,1-.28-.12.37.37,0,0,1-.12-.27.36.36,0,0,1,.12-.27.45.45,0,0,1,.28-.1.41.41,0,0,1,.27.1.36.36,0,0,1,.12.27.37.37,0,0,1-.12.27A.34.34,0,0,1,64.38,97.6Zm0,6.51a.28.28,0,0,1-.18-.06.23.23,0,0,1-.08-.16V99.37a.19.19,0,0,1,.08-.15.28.28,0,0,1,.18-.06.31.31,0,0,1,.19.06.18.18,0,0,1,.07.15v4.52a.21.21,0,0,1-.07.16A.31.31,0,0,1,64.38,104.11Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M67.65,104.18a1.64,1.64,0,0,1-1-.34,1.28,1.28,0,0,1-.42-1,1.17,1.17,0,0,1,.31-.86,1.78,1.78,0,0,1,.86-.42,6.12,6.12,0,0,1,1.28-.12h.57v-.28a2.28,2.28,0,0,0-.13-.72,1.33,1.33,0,0,0-.42-.59,1.25,1.25,0,0,0-.78-.23,1.75,1.75,0,0,0-.55.07,1.39,1.39,0,0,0-.34.14.4.4,0,0,1-.21.08.2.2,0,0,1-.17-.1.32.32,0,0,1-.06-.18q0-.12.21-.24a1.86,1.86,0,0,1,.52-.17,2.7,2.7,0,0,1,.63-.07,1.72,1.72,0,0,1,1.07.29,1.67,1.67,0,0,1,.57.74,2.88,2.88,0,0,1,.17,1v2.78a.21.21,0,0,1-.07.16.24.24,0,0,1-.18.06.28.28,0,0,1-.18-.06.21.21,0,0,1-.07-.16v-.51a3,3,0,0,1-.66.55A1.65,1.65,0,0,1,67.65,104.18Zm.08-.46a1.54,1.54,0,0,0,.71-.19,1.91,1.91,0,0,0,.56-.45.84.84,0,0,0,.22-.5v-.77H68.7a7.33,7.33,0,0,0-1,0,1.59,1.59,0,0,0-.74.27.72.72,0,0,0-.28.64.86.86,0,0,0,.29.72A1.17,1.17,0,0,0,67.73,103.72Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M71.93,104.11a.26.26,0,0,1-.18-.06.23.23,0,0,1-.08-.16v-7.6a.19.19,0,0,1,.08-.16.3.3,0,0,1,.36,0,.19.19,0,0,1,.08.16v7.6a.23.23,0,0,1-.08.16A.26.26,0,0,1,71.93,104.11Z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  className: \"cls-1\",\n  d: \"M75.46,104.18a2.55,2.55,0,0,1-.83-.12,1.65,1.65,0,0,1-.55-.29.4.4,0,0,1-.2-.31.36.36,0,0,1,0-.1.39.39,0,0,1,.08-.1.18.18,0,0,1,.09,0,.39.39,0,0,1,.24.12,1.54,1.54,0,0,0,.4.25,1.78,1.78,0,0,0,.74.13,1.3,1.3,0,0,0,.89-.24.77.77,0,0,0,.27-.57.88.88,0,0,0-.19-.6,1.18,1.18,0,0,0-.49-.33l-.63-.2a4.88,4.88,0,0,1-.64-.23,1.25,1.25,0,0,1-.49-.39,1.12,1.12,0,0,1-.19-.68,1.43,1.43,0,0,1,.17-.64,1.39,1.39,0,0,1,.52-.53,1.77,1.77,0,0,1,.92-.21,2.67,2.67,0,0,1,.64.07,1.82,1.82,0,0,1,.5.17c.14.08.2.15.2.23a.3.3,0,0,1,0,.11.31.31,0,0,1-.08.11.13.13,0,0,1-.12,0,.46.46,0,0,1-.21-.07,1.59,1.59,0,0,0-.36-.14,1.62,1.62,0,0,0-.53-.07,1.29,1.29,0,0,0-.66.15.84.84,0,0,0-.35.35.82.82,0,0,0-.11.41.68.68,0,0,0,.18.5,1.36,1.36,0,0,0,.49.27l.64.2a3.45,3.45,0,0,1,.63.25,1.22,1.22,0,0,1,.49.44,1.28,1.28,0,0,1,.19.76,1.15,1.15,0,0,1-.43.94A1.89,1.89,0,0,1,75.46,104.18Z\"\n})));\nfunction SvgSporran(_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 77.1 104.22\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _ref2, _ref3);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSporran);\nexport default __webpack_public_path__ + \"static/media/sporran.e2673d9df4d355cb7104529356915248.svg\";\nexport { ForwardRef as ReactComponent };","// extracted by mini-css-extract-plugin\nexport default {\"img\":\"Icon_img__8l0r8\",\"pulsing\":\"Icon_pulsing__z35e-\"};","import React from 'react'\nimport cx from 'classnames'\n\nimport arrow_down from '../../icons/arrow_down.svg'\nimport arrow_straight from '../../icons/arrow_straight.svg'\nimport arrow_up from '../../icons/arrow_up.svg'\nimport block_new from '../../icons/block_new.svg'\nimport block from '../../icons/block.svg'\nimport bulb_gray from '../../icons/bulb_gray.svg'\nimport bulb_yellow from '../../icons/bulb_yellow.svg'\nimport check from '../../icons/check.svg'\nimport close from '../../icons/close.svg'\nimport exclamation_new from '../../icons/exclamation_new.svg'\nimport exclamation from '../../icons/exclamation.svg'\nimport fav_gray from '../../icons/fav_gray.svg'\nimport fav_yellow from '../../icons/fav_yellow.svg'\nimport BUILT_ON_KILT from '../../icons/Built_on_KILT.svg'\nimport next_session_gray from '../../icons/next_session_gray.svg'\nimport next_session_yellow from '../../icons/next_session_yellow.svg'\nimport order_white from '../../icons/order_white.svg'\nimport order_yellow from '../../icons/order_yellow.svg'\nimport pickaxe_gray from '../../icons/pickax_gray.svg'\nimport pickaxe_orange from '../../icons/pickax_orange.svg'\nimport pickaxe_yellow from '../../icons/pickax_yellow.svg'\nimport search from '../../icons/search.svg'\nimport skateboarder from '../../icons/skateboarder.svg'\nimport time from '../../icons/time.svg'\nimport tokens_gray from '../../icons/tokens_gray.svg'\nimport tokens_white from '../../icons/tokens_white.svg'\nimport tokens_yellow from '../../icons/tokens_yellow.svg'\nimport plus_active from '../../icons/plus_active.svg'\nimport minus_active from '../../icons/minus_active.svg'\nimport plus_inactive from '../../icons/plus_inactive.svg'\nimport minus_inactive from '../../icons/minus_inactive.svg'\nimport firefox_store from '../../icons/Firefox_AddOn.svg'\nimport chrome_store from '../../icons/Google_WebStore.svg'\nimport sporran_logo from '../../icons/sporran.svg'\nimport styles from './Icon.module.css'\n\nconst Icons = {\n  arrow_down,\n  arrow_straight,\n  arrow_up,\n  block_new,\n  block,\n  bulb_gray,\n  bulb_yellow,\n  BUILT_ON_KILT,\n  check,\n  close,\n  exclamation_new,\n  exclamation,\n  fav_gray,\n  fav_yellow,\n  next_session_gray,\n  next_session_yellow,\n  order_white,\n  order_yellow,\n  pickaxe_gray,\n  pickaxe_orange,\n  pickaxe_yellow,\n  search,\n  skateboarder,\n  time,\n  tokens_gray,\n  tokens_white,\n  tokens_yellow,\n  minus_inactive,\n  plus_inactive,\n  minus_active,\n  plus_active,\n  firefox_store,\n  chrome_store,\n  sporran_logo,\n}\n\nexport interface Props {\n  type: keyof typeof Icons\n  pulsing?: boolean\n  width?: number\n  alt?: string\n  tooltip?: string\n}\n\nexport const Icon: React.FC<Props> = ({\n  type,\n  pulsing = false,\n  width,\n  alt = 'Icon',\n  tooltip,\n}) => {\n  return (\n    <img\n      className={cx(styles.img, { [styles.pulsing]: pulsing })}\n      style={{ width }}\n      src={Icons[type]}\n      alt={alt}\n      title={tooltip}\n    />\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"modalOverlay\":\"Modal_modalOverlay__ZrB5u\",\"modal\":\"Modal_modal__DJDMv\",\"textWrapper\":\"Modal_textWrapper__SmMvd\",\"buttonWrapper\":\"Modal_buttonWrapper__A8QeU\",\"buttonClose\":\"Modal_buttonClose__5LpkD\",\"buttonSubmit\":\"Modal_buttonSubmit__5yE7g\",\"modalTitleWrapper\":\"Modal_modalTitleWrapper__3mxqV\",\"modalTitle\":\"Modal_modalTitle__JvsLa\",\"errorText\":\"Modal_errorText__BXJD7\",\"stakeboarder\":\"Modal_stakeboarder__jrMDJ\"};","import { Modal as DialogModal } from 'react-dialog-polyfill'\nimport { Icon } from '../Icon/Icon'\nimport styles from './Modal.module.css'\n\nexport interface Props {\n  title: string\n  buttons?: React.ReactNode\n}\n\nexport const Modal: React.FC<Props> = ({ children, buttons, title }) => {\n  return (\n    <div>\n      <div className={styles.modalOverlay} />\n      <DialogModal open className={styles.modal}>\n        <div className={styles.modalTitleWrapper}>\n          <span className={styles.modalTitle}>{title}</span>\n          <span className={styles.stakeboarder}>\n            <Icon type=\"skateboarder\" width={35} />\n          </span>\n        </div>\n        <div className={styles.textWrapper}>{children}</div>\n        <div className={styles.buttonWrapper}>{buttons}</div>\n      </DialogModal>\n    </div>\n  )\n}\n","import { Button, ButtonColor } from '../Button/Button'\nimport { shortenAddress } from '../../utils/shortenAddress'\nimport { Modal } from '../Modal/Modal'\nimport { claimDelegatorRewards, format } from '../../utils'\nimport { useEffect, useState } from 'react'\nimport { femtoKiltToDigits } from '../../utils/conversion'\n\nexport interface Props {\n  accountAddress: string\n  rewards: number\n  onConfirm: () => void\n  closeModal: () => void\n}\n\nexport const RewardModal: React.FC<Props> = ({\n  accountAddress,\n  rewards,\n  onConfirm,\n  closeModal,\n}) => {\n  const shortAddress = shortenAddress(accountAddress)\n  const [fee, setFee] = useState<number>(0.0003)\n\n  useEffect(() => {\n    const getFee = async () => {\n      const feeInFemto = (\n        await claimDelegatorRewards(accountAddress).then((tx) =>\n          tx.paymentInfo(accountAddress)\n        )\n      ).partialFee\n\n      if (!feeInFemto.isZero()) {\n        const feeInKiltWithSixDigits = femtoKiltToDigits(\n          feeInFemto.toBigInt(),\n          6\n        )\n        setFee(feeInKiltWithSixDigits)\n      }\n    }\n    getFee()\n  }, [accountAddress])\n\n  return (\n    <Modal\n      title=\"CLAIM STAKING REWARDS\"\n      buttons={\n        <>\n          <Button onClick={closeModal} label=\"CANCEL\" />\n          <Button onClick={onConfirm} label=\"CLAIM\" color={ButtonColor.green} />\n        </>\n      }\n    >\n      Do you want to claim rewards for <br />\n      Delegator {shortAddress}? <br />\n      <br />\n      <b>\n        REWARDS: {format(rewards)}\n        <br />\n      </b>\n      <br />\n      KILT staking rewards need to be <br></br>\n      claimed manually by the account owner,<br></br>\n      whenever most convenient for them.\n      <br />\n      <br />\n      <i>\n        Claiming requires a small transaction\n        <br />\n        fee each time, estimated to be\n        <br />\n        {fee} KILT.\n      </i>\n      <br />\n    </Modal>\n  )\n}\n","import React, { useContext, useState, useEffect } from 'react'\nimport { Button, ButtonColor } from '../../components/Button/Button'\nimport { StateContext } from '../../utils/StateContext'\nimport { TokenBar } from '../../components/Dashboard/TokenBar'\nimport { Identicon } from '../../components/Identicon/Identicon'\nimport styles from './IdentityView.module.css'\nimport cx from 'classnames'\nimport { claimDelegatorRewards, withdrawStake } from '../../utils/chain'\nimport { femtoToKilt } from '../../utils/conversion'\nimport { padTime, blockToTime } from '../../utils/timeConvert'\nimport { format } from '../../utils/index'\nimport { useTxSubmitter } from '../../utils/useTxSubmitter'\nimport { getPercent } from '../../utils/stakePercentage'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\nimport { Account } from '../../types'\nimport { useModal } from '../../utils/useModal'\nimport { RewardModal } from '../../components/RewardsModal/RewardsModal'\n\nexport const IdentityView: React.FC = () => {\n  const { bestBlock, accounts } = useContext(BlockchainDataContext)\n  const [readyToWithdraw, setReadyToWithdraw] = useState(0)\n  const { isVisible, showModal, hideModal } = useModal()\n  const [accountData, setAccountData] = useState<Account | undefined>()\n  const {\n    state: { account },\n    dispatch,\n  } = useContext(StateContext)\n\n  const signAndSubmitTx = useTxSubmitter()\n\n  const handleRewardsClaim = async () => {\n    if (!account) throw new Error('No account selected')\n\n    const tx = await claimDelegatorRewards(account.address)\n    await signAndSubmitTx(account.address, tx)\n    hideModal()\n  }\n\n  const withdraw = async () => {\n    if (readyToWithdraw > 0 && account) {\n      const tx = await withdrawStake(account.address)\n      await signAndSubmitTx(account.address, tx)\n    }\n  }\n\n  useEffect(() => {\n    const acconutData = accounts.filter(\n      (val) => val.address === account?.address\n    )\n    setAccountData(acconutData[0])\n  }, [account, accounts])\n\n  useEffect(() => {\n    if (!accountData || !bestBlock) return\n\n    const unstakeable = accountData.unstaking\n      .filter((val) => val.block < BigInt(bestBlock.toString()))\n      .map((val) => {\n        return femtoToKilt(val.amount)\n      })\n\n    const sumAllStakeable = unstakeable.reduce((a, b) => a + b, 0)\n\n    setReadyToWithdraw(sumAllStakeable)\n  }, [accountData, bestBlock])\n\n  // TODO: placeholder for the error notifications\n  if (!accountData || !bestBlock) return <></>\n\n  return (\n    <div className={styles.identityView}>\n      <div className={styles.container}>\n        <div className={styles.identityViewHeader}>\n          <div className={styles.identiconContainer}>\n            <Identicon address={accountData.address} />\n          </div>\n          <div className={cx(styles.label, styles.labelGray, styles.name)}>\n            {accountData?.name}\n          </div>\n          <div className={styles.tokenbarContainer}>\n            <TokenBar\n              staked={accountData.staked}\n              stakeable={accountData.stakeable}\n              percentage\n            />\n          </div>\n        </div>\n        <div className={styles.identityStakeContainer}>\n          <span className={cx(styles.labelSmall, styles.labelGray)}>\n            my stake <br />\n            <span className={cx(styles.label, styles.labelYellow)}>\n              {format(accountData.staked)} | <span />\n              {getPercent(accountData.staked, accountData.stakeable)} %\n            </span>\n          </span>\n          <span\n            className={cx(\n              styles.labelSmall,\n              styles.labelGray,\n              styles.textRight\n            )}\n          >\n            stakeable <br />\n            <span className={cx(styles.label, styles.labelOrange)}>\n              {getPercent(accountData.stakeable, accountData.staked)} % |{' '}\n              <span />\n              {format(accountData.stakeable)}\n            </span>\n          </span>\n        </div>\n        <div className={styles.identityStakeContainer}>\n          <span className={cx(styles.labelSmall, styles.labelGray)}>\n            Unclaimed staking rewards <br />\n            <span className={cx(styles.label, styles.labelGreen)}>\n              {format(accountData.rewards)}\n            </span>\n            {accountData.rewards < 0.001 && (\n              <span className={cx(styles.labelGreen)}>\n                {' '}\n                (less than 1 milli-KILT (0.001 KILT))\n              </span>\n            )}\n          </span>\n          <div className={styles.buttonContainer}>\n            {isVisible && (\n              <RewardModal\n                accountAddress={accountData.address}\n                rewards={accountData.rewards}\n                closeModal={hideModal}\n                onConfirm={handleRewardsClaim}\n              />\n            )}\n          </div>\n        </div>\n        <div className={styles.lockedContainer}>\n          <span\n            className={cx(styles.labelSmall, styles.labelGray, styles.greenBar)}\n          >\n            Ready to claim (rewards)\n          </span>\n          {accountData.rewards > 0.001 && (\n            <div className={styles.buttonCont}>\n              <Button\n                onClick={showModal}\n                label={'Claim'}\n                color={ButtonColor.green}\n              />\n              <span className={cx(styles.label, styles.labelGray)}>\n                {format(accountData.rewards)}\n              </span>\n            </div>\n          )}\n          <span\n            className={cx(\n              styles.labelSmall,\n              styles.labelGray,\n              styles.orangeBar\n            )}\n          >\n            Ready to withdraw (unstake)\n          </span>\n          {readyToWithdraw > 0 && (\n            <div className={styles.buttonCont}>\n              <Button onClick={withdraw} label={'withdraw'} />\n              <span className={cx(styles.label, styles.labelGray)}>\n                {readyToWithdraw && format(readyToWithdraw)}\n              </span>\n            </div>\n          )}\n          <span\n            className={cx(styles.labelSmall, styles.labelGray, styles.redBar)}\n          >\n            Locked for 7 days (stakeable)\n          </span>\n          {accountData.unstaking.map((val, index) => {\n            const blockCount = val.block - BigInt(bestBlock.toString())\n            if (blockCount < 0) return null\n            const { days, hours, minutes, seconds } = blockToTime(\n              Number(blockCount)\n            )\n\n            const daysPad = padTime(days)\n            const hoursPad = padTime(hours)\n            const minutesPad = padTime(minutes)\n            const secondsPad = padTime(seconds)\n\n            const timeable = `${daysPad}d : ${hoursPad}h : ${minutesPad}m : ${secondsPad}s`\n            return (\n              <div key={index}>\n                <span className={cx(styles.labelSmall, styles.labelGray)}>\n                  {`${index + 1}/${accountData.unstaking.length} ${timeable}`}\n                </span>{' '}\n                {format(femtoToKilt(val.amount))}\n              </div>\n            )\n          })}\n        </div>\n      </div>\n      <div className={styles.buttonContainer}>\n        <Button\n          onClick={() => {\n            dispatch({ type: 'unselectAccount' })\n          }}\n          label={'close'}\n        />\n      </div>\n    </div>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"label\":\"Scale_label__DKTiP\",\"spacer\":\"Scale_spacer__JYElD\"};","import React, { useContext } from 'react'\nimport { StoredStateContext } from '../../utils/StoredStateContext'\nimport { Button } from '../Button/Button'\nimport { Icon } from '../Icon/Icon'\nimport styles from './Scale.module.css'\n\nexport const Scale: React.FC = () => {\n  const {\n    storedState: { denomination },\n    dispatch,\n  } = useContext(StoredStateContext)\n  return (\n    <div>\n      <span className={styles.label}>Scale</span>\n      {denomination === 8 ? (\n        <Icon width={15} type={'plus_inactive'} />\n      ) : (\n        <Button onClick={() => dispatch({ type: 'decreaseDenomination' })}>\n          <Icon width={15} type={'plus_active'} />\n        </Button>\n      )}\n      <span className={styles.spacer} />\n      {denomination === 8192 ? (\n        <Icon width={15} type={'minus_inactive'} />\n      ) : (\n        <Button onClick={() => dispatch({ type: 'increaseDenomination' })}>\n          <Icon width={15} type={'minus_active'} />\n        </Button>\n      )}\n    </div>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"backgroundImage\":\"Onboarding_backgroundImage__X3EJA\",\"container\":\"Onboarding_container__X61ln\",\"highlighted\":\"Onboarding_highlighted__sDojV\",\"text\":\"Onboarding_text__FXbtV\",\"downloadContainer\":\"Onboarding_downloadContainer__CPk81\",\"icon\":\"Onboarding_icon__ua7ls\",\"termsLink\":\"Onboarding_termsLink__wiV3W\",\"checkbox\":\"Onboarding_checkbox__DvVSy\"};","// extracted by mini-css-extract-plugin\nexport default {\"overlays\":\"Overlays_overlays__-gVNh\"};","import styles from './Overlays.module.css'\n\nexport const Overlays: React.FC = ({ children }) => (\n  <div className={styles.overlays}>{children}</div>\n)\n","import { useContext } from 'react'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\nimport styles from './Onboarding.module.css'\n\nexport const NoExtension: React.FC = () => {\n  const { minDelegatorStake } = useContext(BlockchainDataContext)\n  if (!minDelegatorStake) throw new Error('Data from the chain not found')\n\n  return (\n    <>\n      <span className={styles.highlighted}>Hey Staker,</span>\n      <p className={styles.text}>Welcome to Stakeboard!</p>\n      <p className={styles.text}>\n        As a delegator you can choose one collator to back per each KILT\n        Identity and get rewarded when they successfully produce blocks.\n        <br />\n        <br />\n        Sleep less, stake more!\n      </p>\n      <p className={styles.text}>\n        In order to enter the halfpipe, download the Sporran extension, create a\n        KILT Identity and load it with at least\n        {` ${minDelegatorStake + 1} `}\n        KILT Coins. If you have the extension already, make sure to give\n        Stakeboard access to it.\n      </p>\n      <p className={styles.text}>\n        Please reload the page after setting up the extension.\n      </p>\n      <span className={styles.highlighted}>Shreddin' it up!</span>\n    </>\n  )\n}\n","import { useContext } from 'react'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\n\nimport styles from './Onboarding.module.css'\n\nexport const NoAccount: React.FC = () => {\n  const { minDelegatorStake } = useContext(BlockchainDataContext)\n\n  if (!minDelegatorStake) {\n    throw new Error('Data from the chain not found')\n  }\n\n  return (\n    <>\n      <span className={styles.highlighted}>Hey Staker,</span>\n      <p className={styles.text}>Welcome to Stakeboard!</p>\n      <p className={styles.text}>\n        As a delegator you can choose one collator to back per each KILT\n        Identity and get rewarded when they successfully produce blocks.\n        <br />\n        <br />\n        Sleep less, stake more!\n      </p>\n      <p className={styles.text}>\n        In order to enter the halfpipe, please make sure that you have created a\n        KILT Identity and loaded it with at least\n        {` ${minDelegatorStake + 1} `} KILT Coins. You can set this up using\n        Polkadot.js or the Sporran extension for Google Chrome or Mozilla\n        Firefox, which you can download below.\n      </p>\n      <p className={styles.text}>\n        Please reload the page after setting up the extension.\n      </p>\n      <span className={styles.highlighted}>Shreddin' it up!</span>\n    </>\n  )\n}\n","import { useContext } from 'react'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\nimport styles from './Onboarding.module.css'\n\nexport const NoTokens: React.FC = () => {\n  const { minDelegatorStake } = useContext(BlockchainDataContext)\n  if (!minDelegatorStake) throw new Error('Data from the chain not found')\n\n  return (\n    <>\n      <span className={styles.highlighted}>Hey Staker,</span>\n      <p className={styles.text}>Welcome to Stakeboard!</p>\n      <p className={styles.text}>\n        As a delegator you can choose one collator to back per each KILT\n        Identity and get rewarded when they successfully produce blocks.\n        <br />\n        <br />\n        Sleep less, stake more!\n      </p>\n      <p className={styles.text}>\n        In order to enter the halfpipe, please make sure that you have created a\n        KILT Identity and loaded it with at least\n        {` ${minDelegatorStake + 1} `}\n        KILT Coins.\n      </p>\n      <p className={styles.text}>\n        Please reload the page after setting up the extension.\n      </p>\n      <span className={styles.highlighted}>Shreddin' it up!</span>\n    </>\n  )\n}\n","import styles from './Onboarding.module.css'\nimport { Button } from '../Button/Button'\nimport { useContext, useState } from 'react'\nimport { StateContext } from '../../utils/StateContext'\n\nexport const NotAcceptedTerms: React.FC = () => {\n  const { dispatch } = useContext(StateContext)\n  const [acceptedTerms, setAcceptedTerms] = useState<boolean>(true)\n  return (\n    <>\n      <span className={styles.highlighted}>Hey Staker,</span>\n      <p className={styles.text}>Welcome to Stakeboard!</p>\n      <p className={styles.text}>\n        As a delegator you can choose one collator to back per each KILT\n        Identity and get rewarded when they successfully produce blocks.\n        <br />\n        <br />\n        Sleep less, stake more!\n      </p>\n      <p className={styles.text}>\n        <label>\n          <input\n            type={'checkbox'}\n            onClick={() => setAcceptedTerms(!acceptedTerms)}\n            className={styles.checkbox}\n          />\n          I have read and agree to the\n          <a\n            href={process.env.PUBLIC_URL + 'terms.html'}\n            rel=\"noreferrer\"\n            target=\"_blank\"\n            className={styles.termsLink}\n          >\n            Terms of Use for the KILT Stakeboard Web Application\n          </a>\n        </label>\n      </p>\n      <p className={styles.text}>\n        (for security reasons you will have to agree every time you open this\n        website)\n      </p>\n      <span className={styles.highlighted}>\n        <Button\n          label=\"continue\"\n          disabled={acceptedTerms}\n          onClick={() => {\n            dispatch({ type: 'acceptTerms' })\n          }}\n        ></Button>\n      </span>\n    </>\n  )\n}\n","import styles from './Onboarding.module.css'\n\nexport const NoData: React.FC = () => {\n  return (\n    <>\n      <span className={styles.highlighted}>Hey Staker,</span>\n      <p className={styles.text}>Welcome to Stakeboard!</p>\n      <p className={styles.text}>\n        As a delegator you can choose one collator to back per each KILT\n        Identity and get rewarded when they successfully produce blocks.\n        <br />\n        <br />\n        Sleep less, stake more!\n      </p>\n      <p className={styles.text}>\n        Data from the chain is being collected at the moment.\n      </p>\n      <p className={styles.text}>\n        Please reload the page after setting up the extension.\n      </p>\n      <span className={styles.highlighted}>Shreddin' it up!</span>\n    </>\n  )\n}\n","import React, { useContext, useEffect, useState } from 'react'\nimport styles from './Onboarding.module.css'\nimport { Account, Extension } from '../../types'\nimport bg1 from '../../pics/FTU_BG_01.png'\nimport bg2 from '../../pics/FTU_BG_02.png'\nimport bg3 from '../../pics/FTU_BG_03.png'\nimport bg4 from '../../pics/FTU_BG_04.png'\nimport { StateContext } from '../../utils/StateContext'\nimport { Overlays } from '../Overlays/Overlays'\nimport { NoExtension } from './NoExtension'\nimport { NoAccount } from './NoAccount'\nimport { NoTokens } from './NoTokens'\nimport { NotAcceptedTerms } from './NotAcceptedTerms'\nimport { NoData } from './NoData'\nimport { Icon } from '../Icon/Icon'\nimport { Button } from '../Button/Button'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\n\nconst backgrounds = [bg1, bg2, bg3, bg4]\n\nenum OnboardingStatus {\n  NoExtension,\n  NoAccount,\n  NoTokens,\n  NoData,\n  NotAcceptedTerms,\n  Ok,\n}\n\nfunction isUsableAccount(\n  account: Account,\n  minDelegatorStake: number | undefined\n) {\n  if (account.staked > 0) return true\n  if (minDelegatorStake && account.stakeable >= minDelegatorStake + 1)\n    return true\n  if (account.unstaking.length > 0) return true\n}\n\nfunction needsOnboarding(\n  extensions: Extension[],\n  accounts: Account[],\n  termsAccepted: boolean,\n  minDelegatorStake: number | undefined,\n  loadingDataStatus: string\n) {\n  if (!termsAccepted) {\n    return OnboardingStatus.NotAcceptedTerms\n  } else if (loadingDataStatus === 'loading') {\n    return OnboardingStatus.NoData\n  } else if (extensions.length === 0) {\n    return OnboardingStatus.NoExtension\n  } else if (accounts.length === 0) {\n    return OnboardingStatus.NoAccount\n  } else if (\n    !accounts.some((account) => isUsableAccount(account, minDelegatorStake))\n  ) {\n    return OnboardingStatus.NoTokens\n  } else {\n    return OnboardingStatus.Ok\n  }\n}\n\nexport interface OnboardingContentProps {\n  status: OnboardingStatus\n}\n\nconst OnboardingContent: React.FC<OnboardingContentProps> = ({ status }) => {\n  switch (status) {\n    case OnboardingStatus.NotAcceptedTerms:\n      return <NotAcceptedTerms />\n    case OnboardingStatus.NoExtension:\n      return <NoExtension />\n    case OnboardingStatus.NoAccount:\n      return <NoAccount />\n    case OnboardingStatus.NoData:\n      return <NoData />\n    case OnboardingStatus.NoTokens:\n      return <NoTokens />\n  }\n  return null\n}\n\nconst DownloadLinks: React.FC = () => {\n  return (\n    <div className={styles.downloadContainer}>\n      <span className={styles.icon}>\n        <Button\n          onClick={() => {\n            window.open(\n              'https://chrome.google.com/webstore/detail/sporran/djdnajgjcbjhhbdblkegbcgodlkkfhcl',\n              '_blank'\n            )\n          }}\n        >\n          <Icon type=\"chrome_store\" width={200} />\n        </Button>\n      </span>\n      <span className={styles.icon}>\n        <Button\n          onClick={() => {\n            window.open(\n              'https://addons.mozilla.org/de/firefox/addon/sporran/',\n              '_blank'\n            )\n          }}\n        >\n          <Icon type=\"firefox_store\" width={200} />\n        </Button>\n      </span>\n      <span className={styles.icon}>\n        <Icon type=\"sporran_logo\" width={70} />\n      </span>\n    </div>\n  )\n}\n\nexport interface Props {\n  extensions: Extension[]\n}\nexport const Onboarding: React.FC<Props> = ({ extensions, children }) => {\n  const { accounts, minDelegatorStake } = useContext(BlockchainDataContext)\n\n  const [background, setBackground] = useState<string | null>(null)\n\n  useEffect(() => {\n    const random = Math.floor(Math.random() * backgrounds.length)\n    setBackground(backgrounds[random])\n  }, [])\n\n  const {\n    state: { termsAccepted, loadingData },\n  } = useContext(StateContext)\n\n  const status = needsOnboarding(\n    extensions,\n    accounts,\n    termsAccepted,\n    minDelegatorStake,\n    loadingData\n  )\n\n  if (status === OnboardingStatus.Ok) {\n    return <>{children}</>\n  } else {\n    return (\n      <div\n        style={{\n          backgroundImage: `url(${background})`,\n        }}\n        className={styles.backgroundImage}\n      >\n        <Overlays>\n          <div className={styles.container}>\n            <OnboardingContent status={status} />\n          </div>\n          <DownloadLinks />\n        </Overlays>\n      </div>\n    )\n  }\n}\n","import React, { useContext } from 'react'\nimport styles from './Dashboard.module.css'\nimport { Extension } from '../../types'\nimport { Accounts } from './Accounts'\nimport { StateContext } from '../../utils/StateContext'\nimport { IdentityView } from '../../container/IdentityView/IdentityView'\nimport { Scale } from '../Scale/Scale'\nimport { Onboarding } from '../Onboarding/Onboarding'\nimport { Overlays } from '../Overlays/Overlays'\n\nexport interface Props {\n  extensions: Extension[]\n}\n\ntype RefreshPausedOverlayProps = {\n  refreshPaused: boolean\n}\n\nconst RefreshPausedOverlay: React.FC<RefreshPausedOverlayProps> = ({\n  children,\n  refreshPaused,\n}) =>\n  refreshPaused ? (\n    <div className={styles.pauseOverlay} children={children} />\n  ) : (\n    <>{children}</>\n  )\n\nexport const Dashboard: React.FC<Props> = ({ extensions }) => {\n  const {\n    state: { refreshPaused, account },\n  } = useContext(StateContext)\n\n  return (\n    <div className={styles.dashboard}>\n      <Onboarding extensions={extensions}>\n        <Overlays>\n          <RefreshPausedOverlay refreshPaused={refreshPaused}>\n            {account ? (\n              <IdentityView />\n            ) : (\n              <>\n                <div className={styles.accountsContainer}>\n                  <>\n                    <div className={styles.accounts}>\n                      <Accounts />\n                    </div>\n                  </>\n                </div>\n                <div className={styles.scaleContainer}>\n                  <Scale />\n                </div>\n              </>\n            )}\n          </RefreshPausedOverlay>\n        </Overlays>\n      </Onboarding>\n    </div>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"CollatorList_table__EdiUk\",\"tableHead\":\"CollatorList_tableHead__AgZeN\",\"searchButton\":\"CollatorList_searchButton__unwFl\",\"search\":\"CollatorList_search__dpR9G\",\"activeSort\":\"CollatorList_activeSort__3-Kgs\"};","// extracted by mini-css-extract-plugin\nexport default {\"spacer\":\"row_spacer__DTt36\",\"row\":\"row_row__AHYN6\",\"column\":\"row_column__X29V-\",\"wrapper\":\"row_wrapper__opmFK\",\"staked\":\"row_staked__Fvujg\",\"stakeRow\":\"row_stakeRow__N5yxF\",\"expandable\":\"row_expandable__51u2K\",\"rank\":\"row_rank__ullcm\",\"topRank\":\"row_topRank__iI2ky\",\"candidatePool\":\"row_candidatePool__nGR3M\",\"informationBox\":\"row_informationBox__ke5Cz\",\"myStake\":\"row_myStake__+XrtS\",\"stakeable\":\"row_stakeable__H8Mpa\",\"identityStaked\":\"row_identityStaked__Mu57n\",\"padTop10\":\"row_padTop10__pVFHq\"};","// extracted by mini-css-extract-plugin\nexport default {\"firstRow\":\"CollatorListItem_firstRow__LJj4-\",\"lastRow\":\"CollatorListItem_lastRow__LXqG3\"};","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"Input_input__E5rzA\",\"number\":\"Input_number__VDfz7\"};","import React, { ChangeEventHandler } from 'react'\nimport styles from './Input.module.css'\nimport cx from 'classnames'\n\nexport interface Props {\n  number?: true\n  placeholder?: string\n  autoFocus?: HTMLInputElement['autofocus']\n  autoComplete?: HTMLInputElement['autocomplete']\n  onInput: ChangeEventHandler<HTMLInputElement>\n  value: HTMLInputElement['value']\n}\n\nexport const Input: React.FC<Props> = ({\n  number,\n  placeholder,\n  autoFocus,\n  autoComplete,\n  onInput,\n  value,\n}) => {\n  if (number) {\n    return (\n      <>\n        <input\n          type=\"number\"\n          autoFocus={autoFocus}\n          autoComplete={autoComplete}\n          className={cx(styles.input, styles.number)}\n          placeholder={placeholder ? placeholder : '0'}\n          value={value}\n          onInput={onInput}\n          min={0}\n        />\n      </>\n    )\n  }\n\n  return (\n    <input\n      type=\"text\"\n      className={styles.input}\n      placeholder={placeholder ? placeholder : ''}\n      autoFocus={autoFocus}\n      autoComplete={autoComplete}\n      value={value}\n      onInput={onInput}\n    />\n  )\n}\n","export function getStatus(newStake: number | undefined, staked: number) {\n  if (!newStake) return 'unstake'\n  if (newStake === 0) {\n    return 'unstake'\n  } else if (staked === 0 && newStake > staked) {\n    return 'stake'\n  } else if (newStake < staked) {\n    return 'decreaseStake'\n  } else if (newStake > staked) {\n    return 'increaseStake'\n  }\n  return 'unchanged'\n}\n","import { Button, ButtonColor } from '../Button/Button'\nimport { shortenAddress } from '../../utils/shortenAddress'\nimport { Modal } from '../Modal/Modal'\n\nexport interface Props {\n  collatorAddress: string\n  newStake: number\n  onConfirm: () => void\n  closeModal: () => void\n  status: 'increaseStake' | 'decreaseStake' | 'unstake' | 'unchanged' | 'stake'\n}\n\nexport const StakeModal: React.FC<Props> = ({\n  collatorAddress,\n  newStake,\n  onConfirm,\n  closeModal,\n  status,\n}) => {\n  const shortAddress = shortenAddress(collatorAddress)\n\n  const NOTES_MESSAGE = (\n    <p>\n      Note: <br />\n      You can withdraw <br />\n      the unstaked amount after 7 days <br />\n      (see progress in your dashboard) <br />\n      or use the unstaked balance immediately <br />\n      to back a Collator\n      <br />\n      <br />\n      Remember! <br />\n      Once you have staked, you can be kicked by\n      <br />\n      someone else who stakes more. If this occurs,\n      <br /> your KILT is locked for 7 days, during which\n      <br /> time you can restake but not withdraw.\n    </p>\n  )\n\n  switch (status) {\n    case 'stake':\n      return (\n        <Modal\n          title=\"CONFIRM STAKE\"\n          buttons={\n            <>\n              <Button onClick={closeModal} label=\"CANCEL\" />\n              <Button\n                onClick={onConfirm}\n                label=\"STAKE\"\n                color={ButtonColor.orange}\n              />\n            </>\n          }\n        >\n          Do you want to stake on <br />\n          Collator {shortAddress}? <br />\n          <br />\n          STAKE: {newStake.toLocaleString()} <br />\n          <br />\n          Please note that you need to have\n          <br />\n          additional funds to pay fees for every transaction\n          <br />\n          you want to make (e.g. stake,\n          <br />\n          unstake, reduce stake etc.).\n          <br />\n          <br />\n          Remember! <br />\n          Once you have staked, you can be kicked by\n          <br />\n          someone else who stakes more. If this occurs,\n          <br /> your KILT is locked for 7 days, during which\n          <br /> time you can restake but not withdraw.\n        </Modal>\n      )\n    case 'increaseStake':\n      return (\n        <Modal\n          title=\"INCREASE STAKE\"\n          buttons={\n            <>\n              <Button onClick={closeModal} label=\"CANCEL\" />\n              <Button\n                onClick={onConfirm}\n                label=\"STAKE\"\n                color={ButtonColor.orange}\n              />\n            </>\n          }\n        >\n          Do you want to increase stake on <br />\n          Collator {shortAddress}? <br />\n          <br />\n          STAKE: {newStake.toLocaleString()} <br />\n          <br />\n          Please note that you need to have\n          <br />\n          additional funds to pay fees for every transaction\n          <br />\n          you want to make (e.g. stake,\n          <br />\n          unstake, reduce stake etc.).\n        </Modal>\n      )\n    case 'decreaseStake':\n      return (\n        <Modal\n          title=\"DECREASE STAKE\"\n          buttons={\n            <>\n              <Button onClick={closeModal} label=\"CANCEL\" />\n              <Button\n                onClick={onConfirm}\n                label=\"STAKE\"\n                color={ButtonColor.orange}\n              />\n            </>\n          }\n        >\n          <div>\n            Do you want to decrease the stake of <br />\n            Collator {shortAddress} <br />\n            <br />\n            STAKE: {newStake.toLocaleString()} <br />\n          </div>\n          {NOTES_MESSAGE}\n        </Modal>\n      )\n    case 'unstake':\n      return (\n        <Modal\n          title=\"UNSTAKE\"\n          buttons={\n            <>\n              <Button onClick={closeModal} label=\"CANCEL\" />\n              <Button\n                onClick={onConfirm}\n                label=\"UNSTAKE\"\n                color={ButtonColor.orange}\n              />\n            </>\n          }\n        >\n          <div>\n            Do you want to stop staking on <br />\n            Collator {shortAddress}? <br />\n          </div>\n          {NOTES_MESSAGE}\n        </Modal>\n      )\n    case 'unchanged':\n    default:\n      return null\n  }\n}\n","import React from 'react'\nimport cx from 'classnames'\nimport { Button, ButtonColor } from '../Button/Button'\nimport rowStyles from '../../styles/row.module.css'\n\nexport interface UnstakeRowProps {\n  handleUnstake: () => void\n}\n\nexport const UnstakeRow: React.FC<UnstakeRowProps> = ({ handleUnstake }) => {\n  return (\n    <tr className={cx(rowStyles.row, rowStyles.stakeRow, rowStyles.staked)}>\n      <td className={rowStyles.spacer}></td>\n      <td></td>\n      <td></td>\n      <td></td>\n      <td></td>\n      <td>\n        <div className={rowStyles.wrapper}>\n          <span>OR UNSTAKE COLLATOR</span>\n          <span className={rowStyles.informationBox}>\n            (note: you can withdraw the unstaked amount in 7 days, but it can be\n            used for staking other collators immediately)\n          </span>\n        </div>\n      </td>\n      <td>\n        <Button\n          label=\"unstake\"\n          onClick={handleUnstake}\n          color={ButtonColor.orange}\n        />\n      </td>\n      <td></td>\n      <td></td>\n    </tr>\n  )\n}\n","import React, { useContext, useEffect, useState } from 'react'\nimport cx from 'classnames'\nimport rowStyles from '../../styles/row.module.css'\nimport {\n  delegatorStakeLess,\n  delegatorStakeMore,\n  format,\n  leaveDelegators,\n} from '../../utils'\nimport { Account, DataStake } from '../../types'\nimport { Button } from '../Button/Button'\nimport { useModal } from '../../utils/useModal'\nimport { Input } from '../Input/Input'\nimport { getStatus } from '../../utils/stakeStatus'\nimport { StakeModal } from '../StakeModal/StakeModal'\nimport { kiltToFemto } from '../../utils/conversion'\nimport { useTxSubmitter } from '../../utils/useTxSubmitter'\nimport { UnstakeRow } from '../UnstakeRow/UnstakeRow'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\n\nexport interface Props {\n  stakeInfo: DataStake\n  collator: string\n}\n\nexport const StakeRow: React.FC<Props> = ({ stakeInfo, collator }) => {\n  const { isVisible, showModal, hideModal } = useModal()\n  const [editStake, setEditStake] = useState(false)\n  const [newStake, setNewStake] = useState<number | undefined>()\n  const [stakeable, setStakeable] = useState<number>()\n  const signAndSubmitTx = useTxSubmitter()\n  const { accounts, minDelegatorStake } = useContext(BlockchainDataContext)\n\n  const handleEdit = () => {\n    setEditStake(!editStake)\n    setNewStake(stakeInfo.stake)\n  }\n  const changeStake = async (\n    account: Account,\n    current: number,\n    newStake: number | undefined\n  ) => {\n    let tx\n    if (!newStake || newStake === 0) {\n      tx = await leaveDelegators()\n    } else if (newStake > current) {\n      const more = newStake - current\n      const differenceInFemto = kiltToFemto(more)\n      tx = await delegatorStakeMore(differenceInFemto)\n    } else if (newStake < current) {\n      const less = current - newStake\n      const differenceInFemto = kiltToFemto(less)\n      tx = await delegatorStakeLess(differenceInFemto)\n    }\n\n    if (tx) {\n      await signAndSubmitTx(account.address, tx)\n    }\n  }\n\n  const account = accounts.find(\n    (account) => account.address === stakeInfo.account\n  )\n  useEffect(() => {\n    if (!account || !newStake) return\n    setStakeable(account.stakeable + account.staked - newStake)\n  }, [account, newStake])\n\n  if (!account) return null\n\n  const handleStake = async () => {\n    await changeStake(account, stakeInfo.stake, newStake)\n    hideModal()\n    setEditStake(false)\n  }\n\n  const handleUnstake = async () => {\n    setNewStake(0)\n    showModal()\n  }\n\n  return (\n    <>\n      <tr className={cx(rowStyles.row, rowStyles.stakeRow, rowStyles.staked)}>\n        <td className={rowStyles.spacer}></td>\n        <td></td>\n        <td></td>\n        <td>\n          <div className={rowStyles.wrapper}>\n            <span>COLLATOR STAKE FROM</span>\n            <span className={rowStyles.identityStaked}>{account.name}</span>\n          </div>\n        </td>\n        <td>\n          <div className={rowStyles.wrapper}>\n            <span>NEW STAKE</span>\n            {editStake ? (\n              <>\n                <Input\n                  number\n                  value={newStake?.toString() || ''}\n                  onInput={(e) => {\n                    return Number(e.target.value) <\n                      account.stakeable + account.staked\n                      ? setNewStake(parseInt(e.target.value))\n                      : 0\n                  }}\n                />\n              </>\n            ) : (\n              <span className={rowStyles.myStake}>\n                {format(stakeInfo.stake)}\n              </span>\n            )}\n          </div>\n        </td>\n        <td>\n          <div className={rowStyles.wrapper}>\n            <span>STAKEABLE</span>\n            <span className={rowStyles.stakeable}>\n              {format(stakeable ? stakeable : account.stakeable)}\n            </span>\n          </div>\n        </td>\n        <td>\n          {!editStake ? (\n            <Button label=\"CHANGE\" onClick={handleEdit} />\n          ) : (\n            <Button\n              label=\"APPLY\"\n              onClick={showModal}\n              disabled={\n                newStake === stakeInfo.stake ||\n                Boolean(\n                  minDelegatorStake && newStake && newStake < minDelegatorStake\n                )\n              }\n            />\n          )}\n        </td>\n        <td></td>\n        <td></td>\n      </tr>\n      {editStake && <UnstakeRow handleUnstake={handleUnstake} />}\n      {editStake && isVisible && newStake !== undefined && (\n        <StakeModal\n          collatorAddress={collator}\n          newStake={newStake}\n          status={getStatus(newStake, stakeInfo.stake)}\n          closeModal={hideModal}\n          onConfirm={handleStake}\n        />\n      )}\n    </>\n  )\n}\n","export default function _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n  if (tag.sheet) {\n    // $FlowFixMe\n    return tag.sheet;\n  } // this weirdness brought to you by firefox\n\n  /* istanbul ignore next */\n\n\n  for (var i = 0; i < document.styleSheets.length; i++) {\n    if (document.styleSheets[i].ownerNode === tag) {\n      // $FlowFixMe\n      return document.styleSheets[i];\n    }\n  }\n}\n\nfunction createStyleElement(options) {\n  var tag = document.createElement('style');\n  tag.setAttribute('data-emotion', options.key);\n\n  if (options.nonce !== undefined) {\n    tag.setAttribute('nonce', options.nonce);\n  }\n\n  tag.appendChild(document.createTextNode(''));\n  tag.setAttribute('data-s', '');\n  return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n  function StyleSheet(options) {\n    var _this = this;\n\n    this._insertTag = function (tag) {\n      var before;\n\n      if (_this.tags.length === 0) {\n        before = _this.prepend ? _this.container.firstChild : _this.before;\n      } else {\n        before = _this.tags[_this.tags.length - 1].nextSibling;\n      }\n\n      _this.container.insertBefore(tag, before);\n\n      _this.tags.push(tag);\n    };\n\n    this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n    this.tags = [];\n    this.ctr = 0;\n    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n    this.key = options.key;\n    this.container = options.container;\n    this.prepend = options.prepend;\n    this.before = null;\n  }\n\n  var _proto = StyleSheet.prototype;\n\n  _proto.hydrate = function hydrate(nodes) {\n    nodes.forEach(this._insertTag);\n  };\n\n  _proto.insert = function insert(rule) {\n    // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n    // it's 1 in dev because we insert source maps that map a single rule to a location\n    // and you can only have one source map per style tag\n    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n      this._insertTag(createStyleElement(this));\n    }\n\n    var tag = this.tags[this.tags.length - 1];\n\n    if (process.env.NODE_ENV !== 'production') {\n      var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n      if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n        // this would only cause problem in speedy mode\n        // but we don't want enabling speedy to affect the observable behavior\n        // so we report this error at all times\n        console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n      }\n      this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n    }\n\n    if (this.isSpeedy) {\n      var sheet = sheetForTag(tag);\n\n      try {\n        // this is the ultrafast version, works across browsers\n        // the big drawback is that the css won't be editable in devtools\n        sheet.insertRule(rule, sheet.cssRules.length);\n      } catch (e) {\n        if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-ms-input-placeholder|-moz-read-write|-moz-read-only){/.test(rule)) {\n          console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n        }\n      }\n    } else {\n      tag.appendChild(document.createTextNode(rule));\n    }\n\n    this.ctr++;\n  };\n\n  _proto.flush = function flush() {\n    // $FlowFixMe\n    this.tags.forEach(function (tag) {\n      return tag.parentNode.removeChild(tag);\n    });\n    this.tags = [];\n    this.ctr = 0;\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._alreadyInsertedOrderInsensitiveRule = false;\n    }\n  };\n\n  return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} value\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string} type\n * @param {string[]} props\n * @param {object[]} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {string} type\n */\nexport function copy (value, root, type) {\n\treturn node(value, root.root, root.parent, type, root.props, root.children, 0)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\treturn delimiter(type === 34 || type === 39 ? type : character)\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","import {IMPORT, COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// \" ' [ (\n\t\t\tcase 34: case 39: case 91: case 40:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, length, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, identifier, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar last = function last(arr) {\n  return arr.length ? arr[arr.length - 1] : null;\n};\n\nvar toRules = function toRules(parsed, points) {\n  // pretend we've started with a comma\n  var index = -1;\n  var character = 44;\n\n  do {\n    switch (token(character)) {\n      case 0:\n        // &\\f\n        if (character === 38 && peek() === 12) {\n          // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n          // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n          // and when it should just concatenate the outer and inner selectors\n          // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n          points[index] = 1;\n        }\n\n        parsed[index] += identifier(position - 1);\n        break;\n\n      case 2:\n        parsed[index] += delimit(character);\n        break;\n\n      case 4:\n        // comma\n        if (character === 44) {\n          // colon\n          parsed[++index] = peek() === 58 ? '&\\f' : '';\n          points[index] = parsed[index].length;\n          break;\n        }\n\n      // fallthrough\n\n      default:\n        parsed[index] += from(character);\n    }\n  } while (character = next());\n\n  return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n  return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n  if (element.type !== 'rule' || !element.parent || // .length indicates if this rule contains pseudo or not\n  !element.length) {\n    return;\n  }\n\n  var value = element.value,\n      parent = element.parent;\n  var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n  while (parent.type !== 'rule') {\n    parent = parent.parent;\n    if (!parent) return;\n  } // short-circuit for the simplest case\n\n\n  if (element.props.length === 1 && value.charCodeAt(0) !== 58\n  /* colon */\n  && !fixedElements.get(parent)) {\n    return;\n  } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n  // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n  if (isImplicitRule) {\n    return;\n  }\n\n  fixedElements.set(element, true);\n  var points = [];\n  var rules = getRules(value, points);\n  var parentRules = parent.props;\n\n  for (var i = 0, k = 0; i < rules.length; i++) {\n    for (var j = 0; j < parentRules.length; j++, k++) {\n      element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n    }\n  }\n};\nvar removeLabel = function removeLabel(element) {\n  if (element.type === 'decl') {\n    var value = element.value;\n\n    if ( // charcode for l\n    value.charCodeAt(0) === 108 && // charcode for b\n    value.charCodeAt(2) === 98) {\n      // this ignores label\n      element[\"return\"] = '';\n      element.value = '';\n    }\n  }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n  return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n  return function (element, index, children) {\n    if (element.type !== 'rule') return;\n    var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n    if (unsafePseudoClasses && cache.compat !== true) {\n      var prevElement = index > 0 ? children[index - 1] : null;\n\n      if (prevElement && isIgnoringComment(last(prevElement.children))) {\n        return;\n      }\n\n      unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n        console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n      });\n    }\n  };\n};\n\nvar isImportRule = function isImportRule(element) {\n  return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n  for (var i = index - 1; i >= 0; i--) {\n    if (!isImportRule(children[i])) {\n      return true;\n    }\n  }\n\n  return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n  element.type = '';\n  element.value = '';\n  element[\"return\"] = '';\n  element.children = '';\n  element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n  if (!isImportRule(element)) {\n    return;\n  }\n\n  if (element.parent) {\n    console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n    nullifyElement(element);\n  } else if (isPrependedWithRegularRules(index, children)) {\n    console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n    nullifyElement(element);\n  }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n  var key = options.key;\n\n  if (process.env.NODE_ENV !== 'production' && !key) {\n    throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n  }\n\n  if ( key === 'css') {\n    var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n    // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n    // note this very very intentionally targets all style elements regardless of the key to ensure\n    // that creating a cache works inside of render of a React component\n\n    Array.prototype.forEach.call(ssrStyles, function (node) {\n      // we want to only move elements which have a space in the data-emotion attribute value\n      // because that indicates that it is an Emotion 11 server-side rendered style elements\n      // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n      // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n      // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n      // will not result in the Emotion 10 styles being destroyed\n      var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n      if (dataEmotionAttribute.indexOf(' ') === -1) {\n        return;\n      }\n      document.head.appendChild(node);\n      node.setAttribute('data-s', '');\n    });\n  }\n\n  var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n  if (process.env.NODE_ENV !== 'production') {\n    // $FlowFixMe\n    if (/[^a-z-]/.test(key)) {\n      throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n    }\n  }\n\n  var inserted = {}; // $FlowFixMe\n\n  var container;\n  var nodesToHydrate = [];\n\n  {\n    container = options.container || document.head;\n    Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n    document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n      var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n      for (var i = 1; i < attrib.length; i++) {\n        inserted[attrib[i]] = true;\n      }\n\n      nodesToHydrate.push(node);\n    });\n  }\n\n  var _insert;\n\n  var omnipresentPlugins = [compat, removeLabel];\n\n  if (process.env.NODE_ENV !== 'production') {\n    omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n      get compat() {\n        return cache.compat;\n      }\n\n    }), incorrectImportAlarm);\n  }\n\n  {\n    var currentSheet;\n    var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n      if (!element.root) {\n        if (element[\"return\"]) {\n          currentSheet.insert(element[\"return\"]);\n        } else if (element.value && element.type !== COMMENT) {\n          // insert empty rule in non-production environments\n          // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n          currentSheet.insert(element.value + \"{}\");\n        }\n      }\n    } : rulesheet(function (rule) {\n      currentSheet.insert(rule);\n    })];\n    var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n    var stylis = function stylis(styles) {\n      return serialize(compile(styles), serializer);\n    };\n\n    _insert = function insert(selector, serialized, sheet, shouldCache) {\n      currentSheet = sheet;\n\n      if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n        currentSheet = {\n          insert: function insert(rule) {\n            sheet.insert(rule + serialized.map);\n          }\n        };\n      }\n\n      stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n      if (shouldCache) {\n        cache.inserted[serialized.name] = true;\n      }\n    };\n  }\n\n  var cache = {\n    key: key,\n    sheet: new StyleSheet({\n      key: key,\n      container: container,\n      nonce: options.nonce,\n      speedy: options.speedy,\n      prepend: options.prepend\n    }),\n    nonce: options.nonce,\n    inserted: inserted,\n    registered: {},\n    insert: _insert\n  };\n  cache.sheet.hydrate(nodesToHydrate);\n  return cache;\n};\n\nexport default createCache;\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (!element.return)\n\t\tswitch (element.type) {\n\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\tbreak\n\t\t\tcase KEYFRAMES:\n\t\t\t\treturn serialize([copy(replace(element.value, '@', '@' + WEBKIT), element, '')], callback)\n\t\t\tcase RULESET:\n\t\t\t\tif (element.length)\n\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\treturn serialize([copy(replace(value, /:(read-\\w+)/, ':' + MOZ + '$1'), element, '')], callback)\n\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1'), element, ''),\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, ':' + MOZ + '$1'), element, ''),\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, MS + 'input-$1'), element, '')\n\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t})\n\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n  var rawClassName = '';\n  classNames.split(' ').forEach(function (className) {\n    if (registered[className] !== undefined) {\n      registeredStyles.push(registered[className] + \";\");\n    } else {\n      rawClassName += className + \" \";\n    }\n  });\n  return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n  var className = cache.key + \"-\" + serialized.name;\n\n  if ( // we only need to add the styles to the registered cache if the\n  // class name could be used further down\n  // the tree but if it's a string tag, we know it won't\n  // so we don't have to add it to registered cache.\n  // this improves memory usage since we can avoid storing the whole style string\n  (isStringTag === false || // we need to always store it if we're in compat mode and\n  // in node since emotion-server relies on whether a style is in\n  // the registered cache to know whether a style is global or not\n  // also, note that this check will be dead code eliminated in the browser\n  isBrowser === false ) && cache.registered[className] === undefined) {\n    cache.registered[className] = serialized.styles;\n  }\n\n  if (cache.inserted[serialized.name] === undefined) {\n    var current = serialized;\n\n    do {\n      var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n      current = current.next;\n    } while (current !== undefined);\n  }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n  // 'm' and 'r' are mixing constants generated offline.\n  // They're not really 'magic', they just happen to work well.\n  // const m = 0x5bd1e995;\n  // const r = 24;\n  // Initialize the hash\n  var h = 0; // Mix 4 bytes at a time into the hash\n\n  var k,\n      i = 0,\n      len = str.length;\n\n  for (; len >= 4; ++i, len -= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n    k ^=\n    /* k >>> r: */\n    k >>> 24;\n    h =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n    /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Handle the last few bytes of the input array\n\n\n  switch (len) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h =\n      /* Math.imul(h, m): */\n      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n\n  h ^= h >>> 13;\n  h =\n  /* Math.imul(h, m): */\n  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\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 = {};\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport default memoize;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n  return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n  return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n  switch (key) {\n    case 'animation':\n    case 'animationName':\n      {\n        if (typeof value === 'string') {\n          return value.replace(animationRegex, function (match, p1, p2) {\n            cursor = {\n              name: p1,\n              styles: p2,\n              next: cursor\n            };\n            return p1;\n          });\n        }\n      }\n  }\n\n  if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n    return value + 'px';\n  }\n\n  return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n  var contentValuePattern = /(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n  var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n  var oldProcessStyleValue = processStyleValue;\n  var msPattern = /^-ms-/;\n  var hyphenPattern = /-(.)/g;\n  var hyphenatedCache = {};\n\n  processStyleValue = function processStyleValue(key, value) {\n    if (key === 'content') {\n      if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n        throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n      }\n    }\n\n    var processed = oldProcessStyleValue(key, value);\n\n    if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n      hyphenatedCache[key] = true;\n      console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n        return _char.toUpperCase();\n      }) + \"?\");\n    }\n\n    return processed;\n  };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n  if (interpolation == null) {\n    return '';\n  }\n\n  if (interpolation.__emotion_styles !== undefined) {\n    if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n      throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n    }\n\n    return interpolation;\n  }\n\n  switch (typeof interpolation) {\n    case 'boolean':\n      {\n        return '';\n      }\n\n    case 'object':\n      {\n        if (interpolation.anim === 1) {\n          cursor = {\n            name: interpolation.name,\n            styles: interpolation.styles,\n            next: cursor\n          };\n          return interpolation.name;\n        }\n\n        if (interpolation.styles !== undefined) {\n          var next = interpolation.next;\n\n          if (next !== undefined) {\n            // not the most efficient thing ever but this is a pretty rare case\n            // and there will be very few iterations of this generally\n            while (next !== undefined) {\n              cursor = {\n                name: next.name,\n                styles: next.styles,\n                next: cursor\n              };\n              next = next.next;\n            }\n          }\n\n          var styles = interpolation.styles + \";\";\n\n          if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n            styles += interpolation.map;\n          }\n\n          return styles;\n        }\n\n        return createStringFromObject(mergedProps, registered, interpolation);\n      }\n\n    case 'function':\n      {\n        if (mergedProps !== undefined) {\n          var previousCursor = cursor;\n          var result = interpolation(mergedProps);\n          cursor = previousCursor;\n          return handleInterpolation(mergedProps, registered, result);\n        } else if (process.env.NODE_ENV !== 'production') {\n          console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n        }\n\n        break;\n      }\n\n    case 'string':\n      if (process.env.NODE_ENV !== 'production') {\n        var matched = [];\n        var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n          var fakeVarName = \"animation\" + matched.length;\n          matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n          return \"${\" + fakeVarName + \"}\";\n        });\n\n        if (matched.length) {\n          console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n        }\n      }\n\n      break;\n  } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n  if (registered == null) {\n    return interpolation;\n  }\n\n  var cached = registered[interpolation];\n  return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n  var string = '';\n\n  if (Array.isArray(obj)) {\n    for (var i = 0; i < obj.length; i++) {\n      string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n    }\n  } else {\n    for (var _key in obj) {\n      var value = obj[_key];\n\n      if (typeof value !== 'object') {\n        if (registered != null && registered[value] !== undefined) {\n          string += _key + \"{\" + registered[value] + \"}\";\n        } else if (isProcessableValue(value)) {\n          string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n        }\n      } else {\n        if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n          throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n        }\n\n        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n          for (var _i = 0; _i < value.length; _i++) {\n            if (isProcessableValue(value[_i])) {\n              string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n            }\n          }\n        } else {\n          var interpolated = handleInterpolation(mergedProps, registered, value);\n\n          switch (_key) {\n            case 'animation':\n            case 'animationName':\n              {\n                string += processStyleName(_key) + \":\" + interpolated + \";\";\n                break;\n              }\n\n            default:\n              {\n                if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n                  console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n                }\n\n                string += _key + \"{\" + interpolated + \"}\";\n              }\n          }\n        }\n      }\n    }\n  }\n\n  return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n  sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n    return args[0];\n  }\n\n  var stringMode = true;\n  var styles = '';\n  cursor = undefined;\n  var strings = args[0];\n\n  if (strings == null || strings.raw === undefined) {\n    stringMode = false;\n    styles += handleInterpolation(mergedProps, registered, strings);\n  } else {\n    if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n      console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n    }\n\n    styles += strings[0];\n  } // we start at 1 since we've already handled the first arg\n\n\n  for (var i = 1; i < args.length; i++) {\n    styles += handleInterpolation(mergedProps, registered, args[i]);\n\n    if (stringMode) {\n      if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n        console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n      }\n\n      styles += strings[i];\n    }\n  }\n\n  var sourceMap;\n\n  if (process.env.NODE_ENV !== 'production') {\n    styles = styles.replace(sourceMapPattern, function (match) {\n      sourceMap = match;\n      return '';\n    });\n  } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n  labelPattern.lastIndex = 0;\n  var identifierName = '';\n  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n  while ((match = labelPattern.exec(styles)) !== null) {\n    identifierName += '-' + // $FlowFixMe we know it's not null\n    match[1];\n  }\n\n  var name = hashString(styles) + identifierName;\n\n  if (process.env.NODE_ENV !== 'production') {\n    // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n    return {\n      name: name,\n      styles: styles,\n      map: sourceMap,\n      next: cursor,\n      toString: function toString() {\n        return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n      }\n    };\n  }\n\n  return {\n    name: name,\n    styles: styles,\n    next: cursor\n  };\n};\n\nexport { serializeStyles };\n","import { createContext, forwardRef, useContext, createElement } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../isolated-hoist-non-react-statics-do-not-use-this-in-your-code/dist/emotion-react-isolated-hoist-non-react-statics-do-not-use-this-in-your-code.browser.esm.js';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n  key: 'css'\n}) : null);\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar withEmotionCache = function withEmotionCache(func) {\n  // $FlowFixMe\n  return /*#__PURE__*/forwardRef(function (props, ref) {\n    // the cache will never be null in the browser\n    var cache = useContext(EmotionCacheContext);\n    return func(props, cache, ref);\n  });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\nvar useTheme = function useTheme() {\n  return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n  if (typeof theme === 'function') {\n    var mergedTheme = theme(outerTheme);\n\n    if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n      throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n    }\n\n    return mergedTheme;\n  }\n\n  if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n    throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n  }\n\n  return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n  return weakMemoize(function (theme) {\n    return getTheme(outerTheme, theme);\n  });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n  var theme = useContext(ThemeContext);\n\n  if (props.theme !== theme) {\n    theme = createCacheWithTheme(theme)(props.theme);\n  }\n\n  return /*#__PURE__*/createElement(ThemeContext.Provider, {\n    value: theme\n  }, props.children);\n};\nfunction withTheme(Component) {\n  var componentName = Component.displayName || Component.name || 'Component';\n\n  var render = function render(props, ref) {\n    var theme = useContext(ThemeContext);\n    return /*#__PURE__*/createElement(Component, _extends({\n      theme: theme,\n      ref: ref\n    }, props));\n  }; // $FlowFixMe\n\n\n  var WithTheme = /*#__PURE__*/forwardRef(render);\n  WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n  return hoistNonReactStatics(WithTheme, Component);\n}\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n  return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n  if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n  props.css.indexOf(':') !== -1) {\n    throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n  }\n\n  var newProps = {};\n\n  for (var key in props) {\n    if (hasOwnProperty.call(props, key)) {\n      newProps[key] = props[key];\n    }\n  }\n\n  newProps[typePropName] = type;\n\n  if (process.env.NODE_ENV !== 'production') {\n    var error = new Error();\n\n    if (error.stack) {\n      // chrome\n      var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z0-9$]+) /);\n\n      if (!match) {\n        // safari and firefox\n        match = error.stack.match(/.*\\n([A-Z][A-Za-z0-9$]+)@/);\n      }\n\n      if (match) {\n        newProps[labelPropName] = sanitizeIdentifier(match[1]);\n      }\n    }\n  }\n\n  return newProps;\n};\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n  var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n  // not passing the registered cache to serializeStyles because it would\n  // make certain babel optimisations not possible\n\n  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n    cssProp = cache.registered[cssProp];\n  }\n\n  var type = props[typePropName];\n  var registeredStyles = [cssProp];\n  var className = '';\n\n  if (typeof props.className === 'string') {\n    className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n  } else if (props.className != null) {\n    className = props.className + \" \";\n  }\n\n  var serialized = serializeStyles(registeredStyles, undefined, typeof cssProp === 'function' || Array.isArray(cssProp) ? useContext(ThemeContext) : undefined);\n\n  if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n    var labelFromStack = props[labelPropName];\n\n    if (labelFromStack) {\n      serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n    }\n  }\n\n  var rules = insertStyles(cache, serialized, typeof type === 'string');\n  className += cache.key + \"-\" + serialized.name;\n  var newProps = {};\n\n  for (var key in props) {\n    if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n      newProps[key] = props[key];\n    }\n  }\n\n  newProps.ref = ref;\n  newProps.className = className;\n  var ele = /*#__PURE__*/createElement(type, newProps);\n\n  return ele;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n  Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","import { createElement, useContext, useRef, useLayoutEffect } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-a8309070.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-a8309070.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../isolated-hoist-non-react-statics-do-not-use-this-in-your-code/dist/emotion-react-isolated-hoist-non-react-statics-do-not-use-this-in-your-code.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.4.0\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"isolated-hoist-non-react-statics-do-not-use-this-in-your-code\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"mitchellhamilton <mitchell@mitchellhamilton.me>\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.13.10\",\n\t\t\"@emotion/cache\": \"^11.4.0\",\n\t\t\"@emotion/serialize\": \"^1.0.2\",\n\t\t\"@emotion/sheet\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.0.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.2.5\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.13.10\",\n\t\t\"@emotion/css\": \"11.1.3\",\n\t\t\"@emotion/css-prettifier\": \"1.0.0\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.3.0\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^0.3.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./isolated-hoist-non-react-statics-do-not-use-this-in-your-code.js\"\n\t\t],\n\t\tumdName: \"emotionReact\"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n  var args = arguments;\n\n  if (props == null || !hasOwnProperty.call(props, 'css')) {\n    // $FlowFixMe\n    return createElement.apply(undefined, args);\n  }\n\n  var argsLength = args.length;\n  var createElementArgArray = new Array(argsLength);\n  createElementArgArray[0] = Emotion;\n  createElementArgArray[1] = createEmotionProps(type, props);\n\n  for (var i = 2; i < argsLength; i++) {\n    createElementArgArray[i] = args[i];\n  } // $FlowFixMe\n\n\n  return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n  if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n  // probably using the custom createElement which\n  // means it will be turned into a className prop\n  // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n  props.className || props.css)) {\n    console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n    warnedAboutCssPropForGlobal = true;\n  }\n\n  var styles = props.styles;\n  var serialized = serializeStyles([styles], undefined, typeof styles === 'function' || Array.isArray(styles) ? useContext(ThemeContext) : undefined);\n  // but it is based on a constant that will never change at runtime\n  // it's effectively like having two implementations and switching them out\n  // so it's not actually breaking anything\n\n\n  var sheetRef = useRef();\n  useLayoutEffect(function () {\n    var key = cache.key + \"-global\";\n    var sheet = new StyleSheet({\n      key: key,\n      nonce: cache.sheet.nonce,\n      container: cache.sheet.container,\n      speedy: cache.sheet.isSpeedy\n    });\n    var rehydrating = false; // $FlowFixMe\n\n    var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n    if (cache.sheet.tags.length) {\n      sheet.before = cache.sheet.tags[0];\n    }\n\n    if (node !== null) {\n      rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n      node.setAttribute('data-emotion', key);\n      sheet.hydrate([node]);\n    }\n\n    sheetRef.current = [sheet, rehydrating];\n    return function () {\n      sheet.flush();\n    };\n  }, [cache]);\n  useLayoutEffect(function () {\n    var sheetRefCurrent = sheetRef.current;\n    var sheet = sheetRefCurrent[0],\n        rehydrating = sheetRefCurrent[1];\n\n    if (rehydrating) {\n      sheetRefCurrent[1] = false;\n      return;\n    }\n\n    if (serialized.next !== undefined) {\n      // insert keyframes\n      insertStyles(cache, serialized.next, true);\n    }\n\n    if (sheet.tags.length) {\n      // if this doesn't exist then it will be null so the style element will be appended\n      var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n      sheet.before = element;\n      sheet.flush();\n    }\n\n    cache.insert(\"\", serialized, sheet, false);\n  }, [cache, serialized.name]);\n  return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n  Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n  var insertable = css.apply(void 0, arguments);\n  var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n  return {\n    name: name,\n    styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n    anim: 1,\n    toString: function toString() {\n      return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n    }\n  };\n};\n\nvar classnames = function classnames(args) {\n  var len = args.length;\n  var i = 0;\n  var cls = '';\n\n  for (; i < len; i++) {\n    var arg = args[i];\n    if (arg == null) continue;\n    var toAdd = void 0;\n\n    switch (typeof arg) {\n      case 'boolean':\n        break;\n\n      case 'object':\n        {\n          if (Array.isArray(arg)) {\n            toAdd = classnames(arg);\n          } else {\n            if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n              console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from <ClassNames/> component.');\n            }\n\n            toAdd = '';\n\n            for (var k in arg) {\n              if (arg[k] && k) {\n                toAdd && (toAdd += ' ');\n                toAdd += k;\n              }\n            }\n          }\n\n          break;\n        }\n\n      default:\n        {\n          toAdd = arg;\n        }\n    }\n\n    if (toAdd) {\n      cls && (cls += ' ');\n      cls += toAdd;\n    }\n  }\n\n  return cls;\n};\n\nfunction merge(registered, css, className) {\n  var registeredStyles = [];\n  var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n  if (registeredStyles.length < 2) {\n    return className;\n  }\n\n  return rawClassName + css(registeredStyles);\n}\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n  var hasRendered = false;\n\n  var css = function css() {\n    if (hasRendered && process.env.NODE_ENV !== 'production') {\n      throw new Error('css can only be used during render');\n    }\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var serialized = serializeStyles(args, cache.registered);\n\n    {\n      insertStyles(cache, serialized, false);\n    }\n\n    return cache.key + \"-\" + serialized.name;\n  };\n\n  var cx = function cx() {\n    if (hasRendered && process.env.NODE_ENV !== 'production') {\n      throw new Error('cx can only be used during render');\n    }\n\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    return merge(cache.registered, css, classnames(args));\n  };\n\n  var content = {\n    css: css,\n    cx: cx,\n    theme: useContext(ThemeContext)\n  };\n  var ele = props.children(content);\n  hasRendered = true;\n\n  return ele;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n  ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n  var isJest = typeof jest !== 'undefined';\n\n  if (isBrowser && !isJest) {\n    var globalContext = isBrowser ? window : global;\n    var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n    if (globalContext[globalKey]) {\n      console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n    }\n\n    globalContext[globalKey] = true;\n  }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n  }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n  return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  Object.defineProperty(subClass, \"prototype\", {\n    writable: false\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\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  return obj;\n}","export default function _taggedTemplateLiteral(strings, raw) {\n  if (!raw) {\n    raw = strings.slice(0);\n  }\n  return Object.freeze(Object.defineProperties(strings, {\n    raw: {\n      value: Object.freeze(raw)\n    }\n  }));\n}","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n  return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var safeIsNaN = Number.isNaN ||\n    function ponyfill(value) {\n        return typeof value === 'number' && value !== value;\n    };\nfunction isEqual(first, second) {\n    if (first === second) {\n        return true;\n    }\n    if (safeIsNaN(first) && safeIsNaN(second)) {\n        return true;\n    }\n    return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n    if (newInputs.length !== lastInputs.length) {\n        return false;\n    }\n    for (var i = 0; i < newInputs.length; i++) {\n        if (!isEqual(newInputs[i], lastInputs[i])) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n    if (isEqual === void 0) { isEqual = areInputsEqual; }\n    var lastThis;\n    var lastArgs = [];\n    var lastResult;\n    var calledOnce = false;\n    function memoized() {\n        var newArgs = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            newArgs[_i] = arguments[_i];\n        }\n        if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n            return lastResult;\n        }\n        lastResult = resultFn.apply(this, newArgs);\n        calledOnce = true;\n        lastThis = this;\n        lastArgs = newArgs;\n        return lastResult;\n    }\n    return memoized;\n}\n\nexport default memoizeOne;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport { _ as _createSuper } from './index-4bd03571.esm.js';\nimport React, { Component } from 'react';\n\nvar defaultProps = {\n  defaultInputValue: '',\n  defaultMenuIsOpen: false,\n  defaultValue: null\n};\n\nvar manageState = function manageState(SelectComponent) {\n  var _class, _temp;\n\n  return _temp = _class = /*#__PURE__*/function (_Component) {\n    _inherits(StateManager, _Component);\n\n    var _super = _createSuper(StateManager);\n\n    function StateManager() {\n      var _this;\n\n      _classCallCheck(this, StateManager);\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      _this.select = void 0;\n      _this.state = {\n        inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n        menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n        value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n      };\n\n      _this.onChange = function (value, actionMeta) {\n        _this.callProp('onChange', value, actionMeta);\n\n        _this.setState({\n          value: value\n        });\n      };\n\n      _this.onInputChange = function (value, actionMeta) {\n        // TODO: for backwards compatibility, we allow the prop to return a new\n        // value, but now inputValue is a controllable prop we probably shouldn't\n        var newValue = _this.callProp('onInputChange', value, actionMeta);\n\n        _this.setState({\n          inputValue: newValue !== undefined ? newValue : value\n        });\n      };\n\n      _this.onMenuOpen = function () {\n        _this.callProp('onMenuOpen');\n\n        _this.setState({\n          menuIsOpen: true\n        });\n      };\n\n      _this.onMenuClose = function () {\n        _this.callProp('onMenuClose');\n\n        _this.setState({\n          menuIsOpen: false\n        });\n      };\n\n      return _this;\n    }\n\n    _createClass(StateManager, [{\n      key: \"focus\",\n      value: function focus() {\n        this.select.focus();\n      }\n    }, {\n      key: \"blur\",\n      value: function blur() {\n        this.select.blur();\n      } // FIXME: untyped flow code, return any\n\n    }, {\n      key: \"getProp\",\n      value: function getProp(key) {\n        return this.props[key] !== undefined ? this.props[key] : this.state[key];\n      } // FIXME: untyped flow code, return any\n\n    }, {\n      key: \"callProp\",\n      value: function callProp(name) {\n        if (typeof this.props[name] === 'function') {\n          var _this$props;\n\n          for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n            args[_key2 - 1] = arguments[_key2];\n          }\n\n          return (_this$props = this.props)[name].apply(_this$props, args);\n        }\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var _this2 = this;\n\n        var _this$props2 = this.props;\n            _this$props2.defaultInputValue;\n            _this$props2.defaultMenuIsOpen;\n            _this$props2.defaultValue;\n            var props = _objectWithoutProperties(_this$props2, [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\"]);\n\n        return /*#__PURE__*/React.createElement(SelectComponent, _extends({}, props, {\n          ref: function ref(_ref) {\n            _this2.select = _ref;\n          },\n          inputValue: this.getProp('inputValue'),\n          menuIsOpen: this.getProp('menuIsOpen'),\n          onChange: this.onChange,\n          onInputChange: this.onInputChange,\n          onMenuClose: this.onMenuClose,\n          onMenuOpen: this.onMenuOpen,\n          value: this.getProp('value')\n        }));\n      }\n    }]);\n\n    return StateManager;\n  }(Component), _class.defaultProps = defaultProps, _temp;\n};\n\nexport { manageState as m };\n","import { S as Select } from './Select-dbb12e54.esm.js';\nexport { c as createFilter, d as defaultTheme, m as mergeStyles } from './Select-dbb12e54.esm.js';\nimport { m as manageState } from './stateManager-845a3300.esm.js';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport { _ as _createSuper } from './index-4bd03571.esm.js';\nexport { c as components } from './index-4bd03571.esm.js';\nimport React, { Component } from 'react';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\nimport memoizeOne from 'memoize-one';\nimport '@babel/runtime/helpers/extends';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/typeof';\nimport 'react-input-autosize';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\n\nvar NonceProvider = /*#__PURE__*/function (_Component) {\n  _inherits(NonceProvider, _Component);\n\n  var _super = _createSuper(NonceProvider);\n\n  function NonceProvider(props) {\n    var _this;\n\n    _classCallCheck(this, NonceProvider);\n\n    _this = _super.call(this, props);\n\n    _this.createEmotionCache = function (nonce, key) {\n      return createCache({\n        nonce: nonce,\n        key: key\n      });\n    };\n\n    _this.createEmotionCache = memoizeOne(_this.createEmotionCache);\n    return _this;\n  }\n\n  _createClass(NonceProvider, [{\n    key: \"render\",\n    value: function render() {\n      var emotionCache = this.createEmotionCache(this.props.nonce, this.props.cacheKey);\n      return /*#__PURE__*/React.createElement(CacheProvider, {\n        value: emotionCache\n      }, this.props.children);\n    }\n  }]);\n\n  return NonceProvider;\n}(Component);\n\nvar index = manageState(Select);\n\nexport default index;\nexport { NonceProvider };\n","import React, { useEffect, useRef } from 'react'\nimport ReactSelect from 'react-select'\nimport './ReactSelect.css'\n\nexport interface Option {\n  value: string\n  label: string\n}\nexport interface Props {\n  options: readonly Option[]\n  onChange?: (value: Option | null) => void\n  clearValue?: boolean\n  placeholder: string\n}\n\nconst IndicatorSeparator = null\n\nexport const Select: React.FC<Props> = ({\n  options,\n  onChange,\n  clearValue,\n  placeholder,\n}) => {\n  const refContainer = useRef<ReactSelect>(null)\n\n  useEffect(() => {\n    if (clearValue) {\n      refContainer.current?.select.clearValue()\n    }\n  }, [clearValue])\n\n  return (\n    <ReactSelect\n      ref={refContainer}\n      options={options}\n      // menuIsOpen={true}\n      components={{ IndicatorSeparator }}\n      placeholder={placeholder}\n      className={'Select'}\n      classNamePrefix=\"s\"\n      onChange={onChange}\n      theme={(theme) => ({\n        ...theme,\n        spacing: {\n          ...theme.spacing,\n          controlHeight: 30,\n          baseUnit: 2,\n        },\n      })}\n    />\n  )\n}\n","import React from 'react'\nimport { Select, Props as SelectProps } from '../../components/Select/Select'\nimport { Account } from '../../types'\nimport { format } from '../../utils'\n\nexport interface Props {\n  onChange?: SelectProps['onChange']\n  clearValue?: SelectProps['clearValue']\n  accounts: Account[]\n}\n\nexport const IdentitySelector: React.FC<Props> = ({\n  onChange,\n  clearValue,\n  accounts,\n}) => {\n  const options = accounts\n    .filter((account) => account.staked === 0)\n    .map((account) => ({\n      value: account.address,\n      label: `${account.name} (Stakeable: ${format(account.stakeable)})`,\n    }))\n  return (\n    <Select\n      options={options}\n      onChange={onChange}\n      clearValue={clearValue}\n      placeholder={'Select Identity'}\n    />\n  )\n}\n","import React, { useContext, useMemo, useState } from 'react'\nimport cx from 'classnames'\nimport rowStyles from '../../styles/row.module.css'\nimport { Button } from '../Button/Button'\nimport { Input } from '../Input/Input'\nimport { IdentitySelector } from '../../container/IdentitySelector/IdentitySelector'\nimport { useModal } from '../../utils/useModal'\nimport { StakeModal } from '../StakeModal/StakeModal'\nimport { getStatus } from '../../utils/stakeStatus'\nimport { joinDelegators } from '../../utils'\nimport { kiltToFemto } from '../../utils/conversion'\nimport { useTxSubmitter } from '../../utils/useTxSubmitter'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\n\nexport interface Props {\n  staked?: boolean\n  collator: string\n}\n\nexport const NewStakeRow: React.FC<Props> = ({ staked = false, collator }) => {\n  const { accounts, minDelegatorStake } = useContext(BlockchainDataContext)\n  const { isVisible, showModal, hideModal } = useModal()\n  const [newStake, setNewStake] = useState<number | undefined>()\n  const [address, setAddress] = useState('')\n  const account = useMemo(() => {\n    if (!address) return undefined\n    return accounts.find((val) => val.address === address)\n  }, [address, accounts])\n  const signAndSubmitTx = useTxSubmitter()\n\n  const handleDelegatorStake = async () => {\n    if (!account) throw new Error('No account selected')\n    if (!newStake) throw new Error('No amount given')\n\n    const amountInFemto = kiltToFemto(newStake)\n    const tx = await joinDelegators(collator, amountInFemto)\n    await signAndSubmitTx(account.address, tx)\n\n    setAddress('')\n    setNewStake(undefined)\n    hideModal()\n  }\n\n  return (\n    <tr\n      className={cx(rowStyles.row, rowStyles.stakeRow, {\n        [rowStyles.staked]: staked,\n      })}\n    >\n      <td></td>\n      <td></td>\n      <td></td>\n      <td className={rowStyles.column}>\n        <div className={rowStyles.wrapper}>\n          STAKE FROM\n          <span className={rowStyles.padTop10} />\n          <IdentitySelector\n            accounts={accounts}\n            onChange={(val) => setAddress(val?.value || '')}\n            clearValue={address === ''}\n          />\n        </div>\n      </td>\n      <td className={rowStyles.column}>\n        <div className={rowStyles.wrapper}>\n          STAKE AMOUNT\n          <span className={rowStyles.padTop10} />\n          <Input\n            number\n            value={newStake?.toString() || ''}\n            onInput={(e) => setNewStake(parseInt(e.target.value))}\n          />\n        </div>\n      </td>\n      <td>\n        <div className={rowStyles.wrapper}>\n          NOTE\n          <span className={rowStyles.informationBox}>\n            Unstaked amounts can only be withdrawn after 7 days\n          </span>\n        </div>\n      </td>\n      <td>\n        {account && isVisible && newStake !== undefined && newStake >= 0 && (\n          <StakeModal\n            collatorAddress={collator}\n            newStake={newStake}\n            status={getStatus(newStake, account.staked)}\n            closeModal={hideModal}\n            onConfirm={handleDelegatorStake}\n          />\n        )}\n        <Button\n          label={'Stake'}\n          onClick={showModal}\n          disabled={\n            !(\n              minDelegatorStake &&\n              address &&\n              newStake !== undefined &&\n              newStake >= minDelegatorStake\n            )\n          }\n        />\n      </td>\n      <td></td>\n      <td></td>\n    </tr>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"Collator_wrapper__Ro23L\",\"identicon\":\"Collator_identicon__QuFwN\",\"address\":\"Collator_address__ZC6Kj\",\"date\":\"Collator_date__Fa6uQ\"};","// extracted by mini-css-extract-plugin\nexport default {\"yellow\":\"Web3Name_yellow__SBmAb\"};","import React from 'react'\nimport styles from './Web3Name.module.css'\n\nconst W3N_URL = process.env.REACT_APP_W3N_URL || 'https://w3n.id/'\nconst W3N_PREFIX = process.env.REACT_APP_W3N_PREFIX || 'w3n:'\n\nexport interface Props {\n  name: string\n}\n\nexport const Web3Name: React.FC<Props> = ({ name }) => {\n  return (\n    <a\n      className={styles.yellow}\n      href={W3N_URL + name}\n      rel=\"noopener noreferrer\"\n      target=\"_blank\"\n      onClick={(e) => e.stopPropagation()}\n    >\n      {W3N_PREFIX + name}\n    </a>\n  )\n}\n","import React, { useEffect, useState } from 'react'\nimport { Identicon } from '../Identicon/Identicon'\nimport styles from './Collator.module.css'\nimport { shortenAddress } from '../../utils/shortenAddress'\nimport { getConnection } from '../../utils/useConnect'\nimport { Web3Name } from '../Web3Name/Web3Name'\n\nexport interface Props {\n  address: string\n  activeSince?: number\n}\n\nexport const Collator: React.FC<Props> = ({ address }) => {\n  const [web3name, setWeb3name] = useState<string | null>(null)\n\n  useEffect(() => {\n    const getWeb3name = async () => {\n      const api = await getConnection()\n      // figure out which did runtime api version we are dealing with\n      const { sectionHash } = api.call.did.queryByAccount.meta\n      const apiVersion = api.runtimeVersion.apis\n        .find(([hash]) => hash.eq(sectionHash))![1]\n        .toNumber()\n      // api v2 expects a different parameter format than api v1\n      const connectedDid = await api.call.did.queryByAccount(\n        apiVersion >= 2 ? { AccountId32: address } : address\n      )\n      if (connectedDid.isSome) {\n        const web3name = connectedDid.unwrap().w3n\n        if (web3name.isSome) {\n          const unwrapped = web3name.unwrap()\n          setWeb3name(unwrapped.toString())\n        }\n      }\n    }\n    getWeb3name()\n  }, [address])\n\n  const shortAddress = shortenAddress(address)\n\n  return (\n    <>\n      <span className={styles.identicon}>\n        <Identicon address={address} />\n      </span>\n      <div className={styles.wrapper}>\n        <span title={address} className={styles.address}>\n          {web3name ? <Web3Name name={web3name} /> : shortAddress}\n        </span>\n      </div>\n    </>\n  )\n}\n","import React, { useContext } from 'react'\nimport cx from 'classnames'\nimport { Collator } from '../Collator/Collator'\nimport { Button } from '../Button/Button'\nimport { Icon } from '../Icon/Icon'\nimport rowStyles from '../../styles/row.module.css'\nimport { format, leftFillZero } from '../../utils'\nimport { DataWithRank } from '../../types'\nimport { StoredStateContext } from '../../utils/StoredStateContext'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\n\nexport interface Props {\n  entry: DataWithRank\n  setExpanded: (expanded: boolean) => void\n  expanded: boolean\n}\n\nexport const CollatorRow: React.FC<Props> = ({\n  entry,\n  setExpanded,\n  expanded,\n}) => {\n  const { dispatch } = useContext(StoredStateContext)\n  const { maxCandidateCount, maxNumberDelegators } = useContext(\n    BlockchainDataContext\n  )\n\n  const hasStakes = entry.stakes.length\n\n  return (\n    <tr\n      className={cx(rowStyles.row, {\n        [rowStyles.staked]: hasStakes,\n        [rowStyles.expandable]: !hasStakes,\n      })}\n      onClick={() => {\n        if (!hasStakes) {\n          setExpanded(!expanded)\n        }\n      }}\n    >\n      <td className={rowStyles.spacer}></td>\n      <td>\n        {entry.favorite ? (\n          <Button\n            onClick={(e) => {\n              e.stopPropagation()\n              dispatch({ type: 'unfavorize', id: entry.collator })\n            }}\n          >\n            <Icon type=\"fav_yellow\" />\n          </Button>\n        ) : (\n          <Button\n            onClick={(e) => {\n              e.stopPropagation()\n              dispatch({ type: 'favorize', id: entry.collator })\n            }}\n          >\n            <Icon type=\"fav_gray\" />\n          </Button>\n        )}\n\n        <Collator address={entry.collator} />\n      </td>\n      <td>\n        {entry.isLeaving ? (\n          <Icon\n            type=\"pickaxe_orange\"\n            pulsing={true}\n            alt=\"leaving\"\n            tooltip=\"Leaving the collator set within 2 hours.\"\n          />\n        ) : entry.active ? (\n          <Icon\n            type=\"pickaxe_yellow\"\n            alt=\"active\"\n            tooltip=\"Ready to build blocks.\"\n          />\n        ) : (\n          <Icon\n            type=\"pickaxe_gray\"\n            alt=\"waiting\"\n            tooltip=\"Waiting to become a collator.\"\n          />\n        )}\n        {entry.activeNext ? (\n          <Icon type=\"next_session_yellow\" />\n        ) : (\n          <Icon type=\"next_session_gray\" />\n        )}\n      </td>\n      <td>\n        <span\n          className={cx(rowStyles.rank, {\n            [rowStyles.topRank]:\n              entry.rank &&\n              maxCandidateCount &&\n              entry.rank <= maxCandidateCount,\n            [rowStyles.candidatePool]:\n              entry.rank && maxCandidateCount && entry.rank > maxCandidateCount,\n          })}\n        >\n          {leftFillZero(entry.rank, 3)}\n        </span>\n        {format(entry.totalStake)}\n      </td>\n      <td>{entry.lowestStake ? format(entry.lowestStake) : '--'}</td>\n      <td colSpan={2}>\n        {leftFillZero(entry.delegators, 2)}\n        {!!maxNumberDelegators &&\n          ` / \n          ${maxNumberDelegators}`}\n      </td>\n\n      <td>\n        {hasStakes ? (\n          <Icon type=\"tokens_yellow\" />\n        ) : (\n          <Icon type=\"tokens_gray\" />\n        )}\n      </td>\n      <td className={rowStyles.spacer}></td>\n    </tr>\n  )\n}\n","import React, { useContext, useState } from 'react'\nimport { DataWithRank } from '../../types'\nimport styles from './CollatorListItem.module.css'\nimport rowStyles from '../../styles/row.module.css'\nimport { StakeRow } from '../StakeRow/StakeRow'\nimport { NewStakeRow } from '../NewStakeRow/NewStakeRow'\nimport { CollatorRow } from '../CollatorRow/CollatorRow'\nimport { StateContext } from '../../utils/StateContext'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\n\nexport interface Props {\n  entry: DataWithRank\n}\n\nconst COLS = 7\n\nexport const CollatorListItem: React.FC<Props> = ({ entry }) => {\n  const [expanded, setExpanded] = useState(false)\n\n  const {\n    state: { termsAccepted },\n  } = useContext(StateContext)\n  const { accounts } = useContext(BlockchainDataContext)\n  return (\n    <>\n      <tr className={styles.firstRow}></tr>\n      <CollatorRow\n        entry={entry}\n        expanded={expanded}\n        setExpanded={setExpanded}\n      />\n      {termsAccepted && accounts.length > 0 && entry.stakes.length > 0 && (\n        <>\n          {entry.stakes.map((stakeInfo) => (\n            <StakeRow\n              key={stakeInfo.account}\n              stakeInfo={stakeInfo}\n              collator={entry.collator}\n            />\n          ))}\n          {<NewStakeRow staked={true} collator={entry.collator} />}\n        </>\n      )}\n      {termsAccepted &&\n        accounts.length > 0 &&\n        expanded &&\n        entry.stakes.length === 0 && <NewStakeRow collator={entry.collator} />}\n      <tr className={styles.lastRow}>\n        <td className={rowStyles.spacer}></td>\n        <td colSpan={COLS}></td>\n        <td className={rowStyles.spacer}></td>\n      </tr>\n    </>\n  )\n}\n","import React, { useContext, useEffect, useState } from 'react'\nimport cx from 'classnames'\nimport styles from './CollatorList.module.css'\nimport rowStyles from '../../styles/row.module.css'\nimport { CollatorListItem } from '../CollatorListItem/CollatorListItem'\nimport { Icon } from '../Icon/Icon'\nimport { Input } from '../Input/Input'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\nimport { DataWithRank } from '../../types'\n\nenum SORT_BY {\n  Rank,\n  Rank_Reverse,\n  TotalReward,\n  Delegators,\n  LowestStake,\n  Favorite,\n}\n\nfunction iconSortType(actual: number, expect: number) {\n  return actual === expect ? 'order_yellow' : 'order_white'\n}\n\nexport const CollatorList: React.FC = () => {\n  const { dataSet } = useContext(BlockchainDataContext)\n  const [showSearch, setShowSearch] = useState(false)\n  const [search, setSearch] = useState('')\n  const [sortBy, setSortBy] = useState(SORT_BY.Rank)\n\n  const [dataWithRanks, setDataWithRanks] = useState<DataWithRank[]>([])\n  const [data, setData] = useState<DataWithRank[]>([])\n\n  useEffect(() => {\n    const sortedData = [...dataSet]\n    sortedData.sort((a, b) => b.totalStake - a.totalStake)\n\n    const dataWithRanks: DataWithRank[] = sortedData.map((value, index) => {\n      return { ...value, rank: index + 1 }\n    })\n\n    setDataWithRanks(dataWithRanks)\n  }, [dataSet])\n\n  useEffect(() => {\n    let newData = !search.length\n      ? [...dataWithRanks]\n      : dataWithRanks.filter((value) => value.collator.startsWith(search))\n\n    switch (sortBy) {\n      case SORT_BY.Rank_Reverse: {\n        newData.sort((a, b) => b.rank - a.rank)\n        break\n      }\n      default:\n      case SORT_BY.Rank: {\n        newData.sort((a, b) => a.rank - b.rank)\n        break\n      }\n    }\n    setData(newData)\n  }, [search, dataSet, sortBy, dataWithRanks])\n\n  return (\n    <table role=\"table\" className={styles.table}>\n      <thead className={styles.tableHead}>\n        <tr>\n          <th className={rowStyles.spacer}></th>\n          <th\n            className={cx({\n              [styles.activeSort]: sortBy === SORT_BY.Favorite,\n            })}\n          >\n            Collator\n            <span\n              className={styles.searchButton}\n              onClick={(e) => {\n                e.stopPropagation()\n                setSearch('')\n                setShowSearch(!showSearch)\n              }}\n            >\n              <Icon type=\"search\" />\n            </span>\n          </th>\n          <th></th>\n          <th\n            className={cx({\n              [styles.activeSort]:\n                sortBy === SORT_BY.Rank || sortBy === SORT_BY.Rank_Reverse,\n            })}\n            onClick={() =>\n              setSortBy(\n                sortBy === SORT_BY.Rank ? SORT_BY.Rank_Reverse : SORT_BY.Rank\n              )\n            }\n          >\n            Rank | Total Stake\n            {sortBy === SORT_BY.Rank ? (\n              <Icon type={iconSortType(sortBy, SORT_BY.Rank)} width={13} />\n            ) : (\n              <Icon\n                type={iconSortType(sortBy, SORT_BY.Rank_Reverse)}\n                width={13}\n              />\n            )}\n          </th>\n          <th\n            className={cx({\n              [styles.activeSort]: sortBy === SORT_BY.LowestStake,\n            })}\n          >\n            Lowest Stake\n          </th>\n          <th\n            className={cx({\n              [styles.activeSort]: sortBy === SORT_BY.Delegators,\n            })}\n            colSpan={2}\n          >\n            Delegators\n          </th>\n          <th>\n            <Icon type=\"tokens_white\" />\n          </th>\n          <th className={rowStyles.spacer}></th>\n        </tr>\n        {showSearch && (\n          <tr className={styles.search}>\n            <th colSpan={42}>\n              <div>\n                <Input\n                  autoFocus\n                  autoComplete=\"off\"\n                  placeholder=\"Search Collator\"\n                  value={search}\n                  onInput={(event) => setSearch(event.target.value)}\n                />\n              </div>\n            </th>\n          </tr>\n        )}\n      </thead>\n      <tbody className={styles.tableBody}>\n        {data.map((entry) => (\n          <CollatorListItem entry={entry} key={entry.collator} />\n        ))}\n      </tbody>\n    </table>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"Header_header__HXQOm\",\"name\":\"Header_name__aG1vj\",\"spacer\":\"Header_spacer__fjcgQ\"};","import React from 'react'\nimport { Icon } from '../Icon/Icon'\nimport styles from './Header.module.css'\n\nexport const Header: React.FC = () => {\n  return (\n    <div className={styles.header}>\n      <div>\n        <span className={styles.name}>Stakeboard</span>\n        <Icon type=\"skateboarder\" width={60} />\n      </div>\n      <Icon type=\"BUILT_ON_KILT\" width={70} />\n    </div>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"footerContainer\":\"Footer_footerContainer__cqEAW\",\"footer\":\"Footer_footer__kXlYa\",\"name\":\"Footer_name__f3GY6\",\"reward\":\"Footer_reward__daGWu\",\"legal\":\"Footer_legal__fy6ps\",\"legalAnchor\":\"Footer_legalAnchor__0HvGz\",\"versionInfo\":\"Footer_versionInfo__EHH5a\",\"gray\":\"Footer_gray__-459g\",\"red\":\"Footer_red__+ZIaE\",\"paddingRight\":\"Footer_paddingRight__I64w0\",\"spacer\":\"Footer_spacer__olBei\"};","import React, { useContext } from 'react'\nimport styles from './Footer.module.css'\nimport packageInfo from '../../../package.json'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\nimport cx from 'classnames'\n\nexport const Footer: React.FC = () => {\n  const { stakingRates } = useContext(BlockchainDataContext)\n\n  return (\n    <footer className={styles.footerContainer}>\n      <div className={cx(styles.footer, styles.name)}>\n        <nav className={styles.legal}>\n          <a\n            className={styles.legalAnchor}\n            href={process.env.PUBLIC_URL + 'imprint.html'}\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            Imprint\n          </a>\n          <a\n            className={styles.legalAnchor}\n            href={process.env.PUBLIC_URL + 'terms.html'}\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            Terms\n          </a>\n          <a\n            className={styles.legalAnchor}\n            href=\"https://github.com/KILT-Foundation/stakeboard\"\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            GitHub\n          </a>\n        </nav>\n        <div className={styles.reward}>\n          <span className={cx(styles.gray, styles.paddingRight)}>STAKED</span>\n          <span\n            className={\n              stakingRates?.delegatorStakingRate || 0 <= 40\n                ? styles.yellow\n                : styles.red\n            }\n          >{`${stakingRates?.delegatorStakingRate.toFixed(1)}%`}</span>\n          <span className={styles.spacer} />\n          <span className={cx(styles.gray, styles.paddingRight)}>\n            {' '}\n            REWARD RATE\n          </span>\n          <span\n            className={\n              stakingRates?.delegatorStakingRate || 0 <= 40\n                ? styles.yellow\n                : styles.red\n            }\n          >\n            {stakingRates?.delegatorRewardRate.toFixed(1)}%\n          </span>\n        </div>\n\n        <div className={styles.versionInfo}>\n          v {packageInfo.version} © {new Date().getFullYear()} KILT Foundation\n        </div>\n      </div>\n    </footer>\n  )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"chaininfo\":\"ChainInfo_chaininfo__DO495\",\"chaininfoPaused\":\"ChainInfo_chaininfoPaused__wnf7X\",\"lineSpacer\":\"ChainInfo_lineSpacer__z88W5\",\"refreshPaused\":\"ChainInfo_refreshPaused__yogQm\",\"container\":\"ChainInfo_container__okeoa\",\"label\":\"ChainInfo_label__spFwZ\",\"labelSmallest\":\"ChainInfo_labelSmallest__qnHjr\",\"leftMargin\":\"ChainInfo_leftMargin__zlu6g\",\"value\":\"ChainInfo_value__0e-L1\",\"valuePaused\":\"ChainInfo_valuePaused__KPJMU\",\"countdown\":\"ChainInfo_countdown__pvSvj\",\"countdownPaused\":\"ChainInfo_countdownPaused__OUhyC\",\"onOff\":\"ChainInfo_onOff__PRPnP\",\"refreshDropdown\":\"ChainInfo_refreshDropdown__6bj01\"};","import React, { useContext, useState, useEffect } from 'react'\nimport { sessionCounter, sessionTimer } from '../../utils/sessionCountdown'\nimport { StateContext } from '../../utils/StateContext'\nimport styles from './ChainInfo.module.css'\nimport cx from 'classnames'\nimport { Icon } from '../Icon/Icon'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\n\nexport const ChainInfo: React.FC = () => {\n  const [sessionCount, setSessionCount] = useState<number>()\n  const [sessionCountdown, setSessionCountdown] = useState('')\n\n  const {\n    state: { refreshPaused },\n  } = useContext(StateContext)\n\n  const { sessionInfo, bestBlock, bestFinalisedBlock } = useContext(\n    BlockchainDataContext\n  )\n\n  useEffect(() => {\n    const sessionCount = sessionCounter(sessionInfo, bestBlock)\n    const sessionTime = sessionTimer(sessionInfo, bestBlock)\n    setSessionCount(sessionCount)\n    setSessionCountdown(sessionTime)\n  }, [sessionInfo, bestBlock])\n\n  return (\n    <div className={refreshPaused ? styles.chaininfoPaused : styles.chaininfo}>\n      <div className={styles.container}>\n        <span className={styles.label}>Session Block countdown</span>\n        <span\n          className={refreshPaused ? styles.countdownPaused : styles.countdown}\n        >\n          {sessionCount}/600\n        </span>\n        {refreshPaused ? (\n          <span className={styles.lineSpacer}>|</span>\n        ) : (\n          <span className={cx(styles.label, styles.lineSpacer)}>\n            {sessionCountdown}\n          </span>\n        )}\n        <span className={styles.refreshPaused}>\n          {refreshPaused ? 'REFRESH PAUSED' : null}\n        </span>\n      </div>\n      <div className={styles.container}>\n        <Icon type=\"block_new\" />\n        <span className={styles.label}>Best Block</span>\n        <span className={refreshPaused ? styles.valuePaused : styles.value}>\n          # {bestBlock ? bestBlock.toLocaleString() : '000,000'}\n        </span>\n        <span className={styles.leftMargin}>\n          <Icon type=\"block_new\" />\n        </span>\n        <span className={styles.label}>Finalized Block</span>\n        <span className={refreshPaused ? styles.valuePaused : styles.value}>\n          #{' '}\n          {bestFinalisedBlock ? bestFinalisedBlock.toLocaleString() : '000,000'}\n        </span>\n      </div>\n    </div>\n  )\n}\n","import { ChainTypes } from '../types'\nimport { blockToTime, padTime } from './timeConvert'\n\nexport function sessionCounter(\n  sessionInfo?: ChainTypes.RoundInfo,\n  bestBlock?: number\n) {\n  if (!sessionInfo || !bestBlock) return 0\n  return bestBlock - sessionInfo.first.toNumber()\n}\n\nexport function sessionTimer(\n  sessionInfo?: ChainTypes.RoundInfo,\n  bestBlock?: number\n) {\n  if (!sessionInfo || !bestBlock) return ''\n  const blockInSession = bestBlock - sessionInfo.first.toNumber()\n  const blockInSessionDescending =\n    sessionInfo.length.toNumber() - blockInSession\n\n  const { hours, minutes, seconds } = blockToTime(blockInSessionDescending)\n\n  const hoursPad = padTime(hours)\n  const minutesPad = padTime(minutes)\n  const secondsPad = padTime(seconds)\n\n  return `~ ${hoursPad}h : ${minutesPad}m : ${secondsPad}s`\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"page\":\"Page_page__nANdL\",\"spacer\":\"Page_spacer__6Khtz\"};","import { Candidate, ChainTypes, StakingRates } from '../types'\nimport {\n  getCandidatePool,\n  getCurrentCollators,\n  getNextCollators,\n  mapCollatorStateToCandidate,\n  getBalance,\n  queryBestBlock,\n  queryBestFinalisedBlock,\n  querySessionInfo,\n  getUnstakingAmounts,\n  getDelegatorStake,\n  queryTotalIssurance,\n  queryOverallTotalStake,\n  queryMaxCandidateCount,\n  queryMinDelegatorStake,\n  queryStakingRates,\n  getUnclaimedStakingRewards,\n  getMaxNumberDelegators,\n} from './chain'\nimport { femtoToKilt } from './conversion'\n\nconst updateCollators = async () => {\n  const [collatorStates, selectedCandidatesChain, currentCandidatesChain] =\n    await Promise.all([\n      getCandidatePool(),\n      getNextCollators(),\n      getCurrentCollators(),\n    ])\n  const candidates: Record<string, Candidate> = {}\n  collatorStates.forEach(async ([accountId, state]) => {\n    if (state.isNone) return\n    const unwrapped = state.unwrap()\n    const candidateId = unwrapped.id.toString()\n    candidates[candidateId] = mapCollatorStateToCandidate(unwrapped)\n  })\n\n  const selectedCandidates = selectedCandidatesChain.map((selected) =>\n    selected[0].toString()\n  )\n\n  const currentCandidates = currentCandidatesChain.map((candidate) =>\n    candidate.toString()\n  )\n\n  return { candidates, selectedCandidates, currentCandidates }\n}\n\nexport interface OverallTotalStake {\n  collators: bigint\n  delegators: bigint\n}\n\ntype ChainInfo = {\n  sessionInfo: ChainTypes.RoundInfo\n  bestBlock: number\n  bestFinalisedBlock: number\n  overrallTotalStake: OverallTotalStake\n  totalIssuance: bigint\n  maxCandidateCount: number\n  minDelegatorStake: number\n  maxNumberDelegators: number\n  stakingRates: StakingRates\n}\n\nconst updateChainInfo = async (): Promise<ChainInfo> => {\n  const [\n    sessionInfo,\n    bestBlock,\n    bestFinalisedBlock,\n    overrallTotalStake,\n    totalIssuance,\n    maxCandidateCount,\n    minDelegatorStake,\n    stakingRates,\n    maxNumberDelegators,\n  ] = await Promise.all([\n    querySessionInfo(),\n    queryBestBlock(),\n    queryBestFinalisedBlock(),\n    queryOverallTotalStake(),\n    queryTotalIssurance(),\n    queryMaxCandidateCount(),\n    queryMinDelegatorStake(),\n    queryStakingRates(),\n    getMaxNumberDelegators(),\n  ])\n\n  const chainInfo: ChainInfo = {\n    sessionInfo,\n    bestBlock: bestBlock.toNumber(),\n    bestFinalisedBlock: bestFinalisedBlock.toNumber(),\n    overrallTotalStake: {\n      collators: overrallTotalStake.collators.toBigInt(),\n      delegators: overrallTotalStake.delegators.toBigInt(),\n    },\n    totalIssuance: totalIssuance.toBigInt(),\n    maxCandidateCount: maxCandidateCount.toNumber(),\n    minDelegatorStake: femtoToKilt(minDelegatorStake.toBigInt()),\n    maxNumberDelegators: maxNumberDelegators.toNumber(),\n    stakingRates,\n  }\n\n  return chainInfo\n}\n\nexport type Unstaking = {\n  block: bigint\n  amount: bigint\n}\n\nexport type Delegation = {\n  collator: string\n  amount: bigint\n}\nexport type AccountInfo = {\n  stakeable: bigint\n  totalStake: bigint\n  unstaking: Array<Unstaking>\n  delegation: Delegation\n  rewards: bigint\n}\n\nconst updateAccountInfos = async (accounts: string[]) => {\n  const getters = accounts.map((account) =>\n    Promise.all([\n      Promise.resolve(account),\n      getBalance(account),\n      getUnstakingAmounts(account),\n      getDelegatorStake(account),\n      getUnclaimedStakingRewards(account),\n    ])\n  )\n\n  const resolved = await Promise.all(getters)\n\n  const accountInfos: Record<string, AccountInfo> = {}\n\n  resolved.forEach((account) => {\n    const address = account[0]\n    const balance = account[1]\n    const unstakingChain = account[2]\n    const maybeDelegation = account[3]\n    const rewards = account[4].toBigInt()\n\n    let totalStake = 0n\n    let delegation = {\n      collator: '',\n      amount: 0n,\n    }\n\n    // Only addresses which have an active delegation can be unwrapped\n    if (maybeDelegation.isSome) {\n      const stake = maybeDelegation.unwrap()\n      totalStake = stake.amount.toBigInt()\n      delegation = {\n        collator: stake.owner.toString(),\n        amount: stake.amount.toBigInt(),\n      }\n    }\n\n    const {\n      data: { free },\n    } = balance\n\n    const unstaking: Array<Unstaking> = []\n    unstakingChain.forEach((value, key) => {\n      unstaking.push({\n        block: key.toBigInt(),\n        amount: value.toBigInt(),\n      })\n    })\n\n    const stakeable = free.toBigInt() - totalStake\n\n    accountInfos[address] = {\n      totalStake,\n      stakeable,\n      unstaking,\n      delegation,\n      rewards,\n    }\n  })\n\n  return accountInfos\n}\n\nexport const initialize = async (\n  interval: number,\n  accounts: string[],\n  updateCallback: (\n    newCandidates: Record<string, Candidate>,\n    selectedCandidates: string[],\n    currentCandidates: string[],\n    chainInfo: ChainInfo,\n    accountInfos: Record<string, AccountInfo> | undefined\n  ) => void\n) => {\n  let timer = 0\n  let shouldKeepUpdating = true\n\n  const update = async () => {\n    const [{ candidates, currentCandidates, selectedCandidates }, chainInfo] =\n      await Promise.all([updateCollators(), updateChainInfo()])\n\n    if (!accounts.length) {\n      updateCallback(\n        candidates,\n        selectedCandidates,\n        currentCandidates,\n        chainInfo,\n        undefined\n      )\n    } else {\n      const accountInfos = await updateAccountInfos(accounts)\n\n      Object.entries(accountInfos).forEach(([address, { delegation }]) => {\n        if (candidates[delegation.collator]) {\n          candidates[delegation.collator].userStakes.push({\n            stake: delegation.amount,\n            account: address,\n          })\n        }\n      })\n\n      updateCallback(\n        candidates,\n        selectedCandidates,\n        currentCandidates,\n        chainInfo,\n        accountInfos\n      )\n    }\n  }\n\n  const keepUpdating = () => {\n    timer = window.setTimeout(async () => {\n      await update()\n      if (shouldKeepUpdating) keepUpdating()\n    }, interval * 1000)\n  }\n\n  update().then(() => {\n    if (shouldKeepUpdating) keepUpdating()\n  })\n\n  const stop = () => {\n    shouldKeepUpdating = false\n    if (timer) {\n      clearTimeout(timer)\n      timer = 0\n    }\n  }\n  return stop\n}\n","import React, { useContext, useEffect, useState } from 'react'\nimport { Account, Candidate, ChainTypes, Data, StakingRates } from '../../types'\nimport { BlockchainDataContext } from '../../utils/BlockchainDataContext'\nimport { femtoKiltToDigits, femtoToKilt } from '../../utils/conversion'\nimport { AccountInfo, initialize, OverallTotalStake } from '../../utils/polling'\nimport { StateContext } from '../../utils/StateContext'\nimport { StoredStateContext } from '../../utils/StoredStateContext'\n\nexport interface Props {\n  partialAccounts: Pick<Account, 'address' | 'name'>[]\n}\n\nexport const BlockchainData: React.FC<Props> = ({\n  partialAccounts,\n  children,\n}) => {\n  const [candidates, setCandidates] = useState<Record<string, Candidate>>({})\n  const [selectedCandidates, setSelectedCandidates] = useState<string[]>([])\n  const [currentCandidates, setCurrentCandidates] = useState<string[]>([])\n  const [dataSet, setDataSet] = useState<Data[]>([])\n  const [accounts, setAccounts] = useState<Account[]>([])\n  const [sessionInfo, setSessionInfo] = useState<ChainTypes.RoundInfo>()\n  const [bestBlock, setBestBlock] = useState<number>()\n  const [bestFinalisedBlock, setBestFinalisedBlock] = useState<number>()\n  const [minDelegatorStake, setMinDelegatorStake] = useState<number>()\n  const [overallTotalStake, setOverallTotalStake] =\n    useState<OverallTotalStake>()\n  const [totalIssuance, setTotalIssuance] = useState<bigint>()\n  const [maxCandidateCount, setMaxCandidateCount] = useState<number>()\n  const [maxNumberDelegators, setMaxNumberDelegators] = useState<number>()\n  const [accountInfos, setAccountInfos] = useState<\n    Record<string, AccountInfo> | undefined\n  >({})\n  const [chainInfoActivate, setChainInfoActivate] = useState<boolean>(false)\n  const [stakingRates, setStakingRates] = useState<StakingRates>()\n\n  const { storedState } = useContext(StoredStateContext)\n  const { state, dispatch } = useContext(StateContext)\n\n  // Query timer\n  useEffect(() => {\n    let stop = () => {}\n    const doEffect = async () => {\n      stop = await initialize(\n        5,\n        partialAccounts.map((account) => account.address),\n        (\n          newCandidates,\n          newSelectedCandidates,\n          newCurrentCandidates,\n          chainInfo,\n          newAccountInfos\n        ) => {\n          setCandidates(newCandidates)\n          setSelectedCandidates(newSelectedCandidates)\n          setCurrentCandidates(newCurrentCandidates)\n          setSessionInfo(chainInfo.sessionInfo)\n          setBestBlock(chainInfo.bestBlock)\n          setBestFinalisedBlock(chainInfo.bestFinalisedBlock)\n          setOverallTotalStake(chainInfo.overrallTotalStake)\n          setTotalIssuance(chainInfo.totalIssuance)\n          setAccountInfos(newAccountInfos)\n          setMaxCandidateCount(chainInfo.maxCandidateCount)\n          setMinDelegatorStake(chainInfo.minDelegatorStake)\n          setMaxNumberDelegators(chainInfo.maxNumberDelegators)\n          setChainInfoActivate(true)\n          setStakingRates(chainInfo.stakingRates)\n        }\n      )\n    }\n\n    doEffect()\n    return () => {\n      stop()\n    }\n  }, [partialAccounts])\n\n  useEffect(() => {\n    if (state.connection.status !== 'connected' && !chainInfoActivate) {\n      dispatch({ type: 'unavailable' })\n    } else if (state.connection.status === 'connected' && !chainInfoActivate) {\n      dispatch({ type: 'loading' })\n    } else if (state.connection.status === 'connected' && chainInfoActivate) {\n      dispatch({ type: 'available' })\n    }\n  }, [chainInfoActivate, dispatch, state.connection.status])\n\n  // Full dataset from queried collators\n  useEffect(() => {\n    const newDataSet: Data[] = Object.values(candidates).map((candidate) => {\n      const totalStake =\n        candidate.stake +\n        candidate.delegators.reduce(\n          (prev, current) => prev + current.amount,\n          0n\n        )\n\n      const sortedLowestStake = candidate.delegators.sort((a, b) =>\n        a.amount >= b.amount ? 1 : -1\n      )\n      const lowestStake = sortedLowestStake.length\n        ? femtoToKilt(sortedLowestStake[0].amount)\n        : null\n\n      return {\n        active: currentCandidates.includes(candidate.id),\n        activeNext: selectedCandidates.includes(candidate.id),\n        collator: candidate.id,\n        delegators: candidate.delegators.length,\n        lowestStake: lowestStake,\n        totalStake: femtoToKilt(totalStake),\n        stakes: candidate.userStakes.map(({ account, stake }) => ({\n          account,\n          stake: femtoToKilt(stake),\n        })),\n        favorite: storedState.favorites.includes(candidate.id),\n        isLeaving: !!candidate.isLeaving,\n      }\n    })\n\n    setDataSet(newDataSet)\n  }, [candidates, storedState, selectedCandidates, currentCandidates])\n\n  // Accounts and their queried info\n  useEffect(() => {\n    if (!accountInfos) return\n    // We need data from the chain for all the accounts before mapping the final account object together\n    if (!partialAccounts.every((account) => accountInfos[account.address]))\n      return\n    // TODO: get data on actual stake / stakeable / other amounts\n    const completeAccounts: Account[] = partialAccounts.map((account) => ({\n      address: account.address,\n      name: account.name,\n      rewards: femtoKiltToDigits(accountInfos[account.address].rewards, 6),\n      staked: femtoToKilt(accountInfos[account.address].totalStake),\n      stakeable: femtoToKilt(accountInfos[account.address].stakeable),\n      unstaking: accountInfos[account.address].unstaking,\n      used:\n        accountInfos[account.address].totalStake > 0 ||\n        accountInfos[account.address].unstaking.length > 0,\n    }))\n    setAccounts(completeAccounts)\n  }, [partialAccounts, accountInfos])\n\n  return (\n    <BlockchainDataContext.Provider\n      value={{\n        dataSet,\n        accounts,\n        sessionInfo,\n        bestBlock,\n        bestFinalisedBlock,\n        overallTotalStake,\n        totalIssuance,\n        maxCandidateCount,\n        minDelegatorStake,\n        maxNumberDelegators,\n        stakingRates,\n      }}\n    >\n      {children}\n    </BlockchainDataContext.Provider>\n  )\n}\n","import { useContext, useEffect, useState } from 'react'\nimport { web3Accounts, web3Enable } from '@polkadot/extension-dapp'\n\nimport { getGenesis } from './chain'\nimport { Account, Extension } from '../types'\nimport { StateContext } from './StateContext'\n\nexport const useExtension = () => {\n  const {\n    state: { loadingData },\n  } = useContext(StateContext)\n\n  const [extensions, setExtensions] = useState<Extension[]>([])\n  const [allAccounts, setAllAccounts] = useState<\n    Pick<Account, 'address' | 'name'>[]\n  >([])\n\n  // Enable extensions\n  useEffect(() => {\n    async function enable() {\n      const allInjected = await web3Enable('Stakeboard')\n      if (allInjected.length) {\n        setExtensions(allInjected)\n      }\n    }\n    // wait for blockchain data to be loaded - this gives extensions time to inject.\n    // Loading extensions immediately on page load results in sporran sometimes not being found by stakeboard.\n    if (loadingData === 'available') {\n      enable()\n    }\n  }, [loadingData])\n\n  // Get accounts from extensions\n  useEffect(() => {\n    async function doEffect() {\n      if (extensions.length) {\n        const genesisHash = await getGenesis()\n        // TODO: we can also subscribe using web3AccountsSubscribe, which would update the accounts list upon creation of a new account\n        const allAccounts = await web3Accounts({ genesisHash, ss58Format: 38 })\n        setAllAccounts(\n          allAccounts.map(({ address, meta: { name } }) => ({\n            name,\n            address,\n          }))\n        )\n      }\n    }\n    doEffect()\n  }, [extensions])\n\n  return { allAccounts, extensions }\n}\n","import React, { useContext } from 'react'\nimport { Button } from '../../components/Button/Button'\nimport { Modal } from '../../components/Modal/Modal'\nimport styles from '../../components/Modal/Modal.module.css'\nimport { StateContext } from '../../utils/StateContext'\n\nexport const ErrorNotification: React.FC = () => {\n  const {\n    state: {\n      error: { hasError, error },\n    },\n    dispatch,\n  } = useContext(StateContext)\n\n  if (!hasError) return null\n\n  return (\n    <Modal\n      title=\"Error\"\n      buttons={\n        <Button\n          onClick={() => dispatch({ type: 'resetError' })}\n          label={'close'}\n        />\n      }\n    >\n      <>\n        There was an Error:\n        <p className={styles.errorText}>{error.toString()}</p>\n      </>\n    </Modal>\n  )\n}\n","import React, { useContext } from 'react'\nimport { StateContext } from '../../utils/StateContext'\nimport { Modal } from '../Modal/Modal'\n\nexport const LoadingDataNotification: React.FC = () => {\n  const { state } = useContext(StateContext)\n\n  switch (state.loadingData) {\n    case 'loading':\n      return (\n        <Modal title=\"Loading\">\n          The data is being fetched from the KILT chain\n        </Modal>\n      )\n    case 'available':\n    case 'unavailable':\n    default:\n      return null\n  }\n}\n","import React, { useContext } from 'react'\nimport { StateContext } from '../../utils/StateContext'\nimport { Modal } from '../Modal/Modal'\n\nexport const ConnectionNotification: React.FC = () => {\n  const { state } = useContext(StateContext)\n\n  switch (state.connection.status) {\n    case 'disconnected':\n    case 'error':\n      return (\n        <Modal title=\"Connection\">\n          Not connected to the Blockchain. Trying to reconnect...\n        </Modal>\n      )\n    case 'connected':\n    default:\n      return null\n  }\n}\n","import React, { useContext } from 'react'\nimport { Button } from '../../components/Button/Button'\nimport { Modal } from '../../components/Modal/Modal'\nimport { StateContext } from '../../utils/StateContext'\n\nexport const BlockchainNotication: React.FC = () => {\n  const {\n    state: {\n      transaction: { txHash, isInProgress, needsSignature },\n    },\n    dispatch,\n  } = useContext(StateContext)\n\n  if (needsSignature) {\n    return (\n      <Modal\n        title=\"SIGNATURE NEEDED\"\n        buttons={\n          <Button\n            onClick={() => dispatch({ type: 'resetTransaction' })}\n            label={'close'}\n          />\n        }\n      >\n        <p>\n          Please wait for your Wallet Extension to open and sign the transaction\n          there.\n        </p>\n      </Modal>\n    )\n  }\n\n  if (isInProgress) {\n    return (\n      <Modal\n        title=\"TRANSACTION IN PROGRESS\"\n        buttons={\n          <Button\n            onClick={() => dispatch({ type: 'resetTransaction' })}\n            label={'close'}\n          />\n        }\n      >\n        <p>Magic is happening...</p>\n      </Modal>\n    )\n  }\n\n  if (typeof txHash === 'string') {\n    return (\n      <Modal\n        title=\"TRANSACTION COMPLETE\"\n        buttons={\n          <Button\n            onClick={() => dispatch({ type: 'resetTransaction' })}\n            label={'close'}\n          />\n        }\n      >\n        <p>Transaction hash: {txHash}</p>\n      </Modal>\n    )\n  }\n\n  return null\n}\n","import React from 'react'\nimport { Dashboard } from '../../components/Dashboard/Dashboard'\nimport { CollatorList } from '../../components/CollatorList/CollatorList'\nimport { Header } from '../../components/Header/Header'\nimport { Footer } from '../../components/Footer/Footer'\nimport { ChainInfo } from '../../components/ChainInfo/ChainInfo'\nimport styles from './Page.module.css'\nimport { BlockchainData } from '../BlockchainData/BlockchainData'\nimport { useExtension } from '../../utils/useExtension'\nimport { ErrorNotification } from '../ErrorNotification/ErrorNotification'\nimport { useConnect } from '../../utils/useConnect'\nimport { LoadingDataNotification } from '../../components/LoadingDataNotification/LoadingDataNotification'\nimport { ConnectionNotification } from '../../components/ConnectionNotification/ConnectionNotification'\nimport { BlockchainNotication } from '../BlockchainNotification/BlockchainNotification'\nimport { Maintenance } from '../Maintenance/Maintenance'\n\nexport interface Props {}\n\nexport const Page: React.FC<Props> = () => {\n  useConnect()\n  const { allAccounts, extensions } = useExtension()\n  if (process.env.REACT_APP_MAINTENANCE === 'true') return <Maintenance />\n  return (\n    <div className={styles.page}>\n      <Header />\n      <BlockchainData partialAccounts={allAccounts}>\n        <ChainInfo />\n        <Dashboard extensions={extensions} />\n        <CollatorList />\n        <div className={styles.spacer} />\n        <Footer />\n      </BlockchainData>\n      <ErrorNotification />\n      <ConnectionNotification />\n      <LoadingDataNotification />\n      <BlockchainNotication />\n    </div>\n  )\n}\n","import React from 'react'\n\nimport './App.css'\nimport { StoredStateProvider } from './utils/StoredStateContext'\nimport { StateProvider } from './utils/StateContext'\nimport { Page } from './container/Page/Page'\n\nfunction App() {\n  return (\n    <div className=\"App\">\n      <StoredStateProvider>\n        <StateProvider>\n          <Page />\n        </StateProvider>\n      </StoredStateProvider>\n    </div>\n  )\n}\n\nexport default App\n","import { ReportHandler } from 'web-vitals'\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n  if (onPerfEntry && onPerfEntry instanceof Function) {\n    import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n      getCLS(onPerfEntry)\n      getFID(onPerfEntry)\n      getFCP(onPerfEntry)\n      getLCP(onPerfEntry)\n      getTTFB(onPerfEntry)\n    })\n  }\n}\n\nexport default reportWebVitals\n","import React, { ReactNode } from 'react'\nimport { Modal } from '../../components/Modal/Modal'\nimport styles from '../../components/Modal/Modal.module.css'\n\ninterface Props {\n  children: ReactNode\n}\ninterface State {\n  error: any\n}\n\nclass ErrorBoundary extends React.Component<Props, State> {\n  constructor(props: Props) {\n    super(props)\n    this.state = { error: false }\n  }\n\n  static getDerivedStateFromError(error: any) {\n    return { error }\n  }\n\n  componentDidCatch(error: any, errorInfo: any) {\n    // TODO: log error to error logging service\n  }\n\n  render(): ReactNode {\n    const { error } = this.state\n    const { children } = this.props\n    return error ? (\n      <Modal title=\"Error\">\n        <>\n          There was an Error:\n          <p className={styles.errorText}>{error.toString()}</p>\n          Please reload the page\n        </>\n      </Modal>\n    ) : (\n      children\n    )\n  }\n}\n\nexport default ErrorBoundary\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport '@kiltprotocol/augment-api'\nimport './index.css'\nimport App from './App'\nimport reportWebVitals from './reportWebVitals'\nimport ErrorBoundary from './container/ErrorBoundary/ErrorBoundary'\n\nReactDOM.render(\n  <React.StrictMode>\n    <ErrorBoundary>\n      <App />\n    </ErrorBoundary>\n  </React.StrictMode>,\n  document.getElementById('root')\n)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n"],"names":["module","exports","assert","val","msg","Error","inherits","ctor","superCtor","super_","TempCtor","prototype","constructor","BN","number","base","endian","isBN","this","negative","words","length","red","_init","Buffer","wordSize","window","require","e","parseHex4Bits","string","index","c","charCodeAt","parseHexByte","lowerBound","r","parseBase","str","start","end","mul","b","len","Math","min","i","move","dest","src","num","Array","isArray","max","left","right","cmp","_initNumber","_initArray","toString","replace","_parseHex","_parseBase","toArray","ceil","j","w","off","_strip","limbLen","limbPow","total","mod","word","imuln","_iaddn","pow","copy","_move","clone","_expand","size","_normSign","Symbol","for","inspect","zeros","groupSizes","groupBases","padding","out","carry","groupSize","groupBase","isZero","modrn","idivn","toNumber","ret","toJSON","toBuffer","toArrayLike","smallMulTo","self","a","lo","k","ncarry","rword","maxJ","ArrayType","byteLength","reqLength","res","allocUnsafe","allocate","_toArrayLikeLE","position","shift","_toArrayLikeBE","clz32","_countBits","t","_zeroBits","bitLength","hi","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","add","sub","comb10MulTo","mid","o","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","FFTM","x","y","mulTo","makeRBT","N","l","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","s","rtwdf","cos","PI","itwdf","sin","p","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","n","m","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","mulp","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","sqr","isqr","toBitArray","q","iushln","bits","carryMask","newCarry","ishln","iushrn","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","mode","bhi","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","andln","acc","modn","egcd","A","B","C","D","g","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","name","tmp","_tmp","K256","call","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","split","imulK","undefined","strip","input","output","outLen","prev","next","mod3","one","nOne","lpow","z","inv","wnd","current","currentLen","mont","u","hasOwn","hasOwnProperty","classNames","classes","arguments","arg","argType","push","inner","apply","Object","key","join","default","supportCustomEvent","CustomEvent","safeDispatchEvent","target","event","check","type","toLowerCase","dispatchEvent","findNearestDialog","el","localName","parentElement","parentNode","host","safeBlur","shadowRoot","activeElement","blur","document","body","inNodeList","nodeList","node","isFormMethodDialog","hasAttribute","getAttribute","findFocusableElementWithin","hostElement","query","map","querySelector","Element","elems","querySelectorAll","tagName","isConnected","element","contains","findFormSubmitter","submitter","form","HTMLFormElement","dialogPolyfill","formSubmitter","getRootNode","maybeHandleSubmit","defaultPrevented","value","imagemapUseValue","dialog","preventDefault","close","dialogPolyfillInfo","dialog_","replacedStyleTop_","openAsModal_","setAttribute","show","bind","showModal","addEventListener","returnValue","MutationObserver","maybeHideModal","observe","attributes","attributeFilter","timeout","removed","cb","downgradeModal","delayModel","ev","cand","substr","clearTimeout","setTimeout","forEach","defineProperty","set","setOpen","get","backdrop_","createElement","className","backdropMouseEvent_","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","style","zIndex","top","removeChild","removeDialog","removeAttribute","focus","fake","insertBefore","firstChild","tabIndex","redirectedEvent","initMouseEvent","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","stopPropagation","focus_","updateZIndex","dialogZ","backdropZ","open","pushDialog","getComputedStyle","invalid","ok","opacity","webkitOverflowScrolling","createsStackingContext","console","warn","needsCentering","reposition","nextSibling","opt_returnValue","closeEvent","scrollTop","documentElement","topValue","innerHeight","offsetHeight","styleSheets","styleSheet","cssRules","rule","selectedNodes","selectorText","cssTop","getPropertyValue","cssBottom","bottom","isInlinePositionSetByStylesheet","HTMLDialogElement","forceRegisterDialog","pendingDialogStack","checkDOM","checkDOM_","overlay","forwardTab_","handleKey_","handleFocus_","zIndexLow_","zIndexHigh_","mo_","records","rec","removedNodes","concat","DialogManager","blockDocument","childList","subtree","unblockDocument","removeEventListener","disconnect","updateStacking","dpi","last","appendChild","containedByTopDialog_","candidate","composedPath","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","keyCode","cancelEvent","slice","indexOf","allowed","unshift","splice","testForm","method","methodDescriptor","getOwnPropertyDescriptor","realGet","realSet","v","offsetX","offsetY","nativeFormSubmit","submit","has","prefix","Events","EE","fn","context","once","addListener","emitter","TypeError","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","names","getOwnPropertySymbols","listeners","handlers","ee","listenerCount","emit","args","removeListener","on","removeAllListeners","prefixed","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","descriptor","d","f","$$typeof","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","propIsEnumerable","propertyIsEnumerable","assign","test1","String","test2","fromCharCode","test3","letter","err","shouldUseNative","source","from","symbols","to","toObject","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","object","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","__esModule","then","enumerable","toStringTag","Modal","Dialog","forwardRef","children","ready","onCancel","onClose","useAsModal","useEffect","ref","createRef","useState","iterator","done","return","test","Promise","resolve","registerDialog","catch","finally","aa","encodeURIComponent","ba","Set","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","toUpperCase","qa","ma","isNaN","na","la","setAttributeNS","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","E","Ma","Ka","La","Na","stack","trim","match","Oa","Pa","prepareStackTrace","Reflect","construct","Qa","tag","_render","Ra","_context","_payload","Sa","Ta","nodeName","Va","_valueTracker","configurable","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","ownerDocument","eb","Children","db","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","html","mathml","svg","lb","mb","nb","ob","namespaceURI","innerHTML","valueOf","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","sb","tb","setProperty","charAt","substring","ub","menuitem","area","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","flags","$b","memoizedState","dehydrated","ac","cc","child","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","F","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","id","uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","timeStamp","Date","now","isTrusted","td","ud","view","vd","Ad","pageX","pageY","getModifierState","zd","buttons","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","locale","which","Rd","Td","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","fe","ge","he","le","color","date","datetime","email","month","password","range","search","tel","text","time","url","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","offset","Me","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","instance","G","$e","af","bf","random","cf","df","capture","passive","Nb","ef","ff","parentWindow","gf","hf","J","K","Q","L","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","M","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","O","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","payload","callback","Ag","Bg","Cg","Dg","Eg","Fg","Component","refs","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","state","updater","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","P","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","R","S","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","message","Ni","error","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","kk","hk","_calculateChangedBits","unstable_observedBits","unmount","JSON","stringify","Vj","vk","wk","findFiberByHostInstance","bundleType","version","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","_extends","_createClass","defineProperties","writable","Constructor","protoProps","staticProps","_react","_react2","_interopRequireDefault","_propTypes2","obj","sizerStyle","visibility","overflow","whiteSpace","INPUT_PROPS_BLACKLIST","copyStyles","styles","fontSize","fontFamily","fontStyle","letterSpacing","textTransform","isIE","navigator","userAgent","generateId","AutosizeInput","_Component","_classCallCheck","_this","ReferenceError","_possibleConstructorReturn","inputRef","placeHolderSizerRef","placeHolderSizer","sizerRef","sizer","inputWidth","minWidth","inputId","prevId","subClass","superClass","setPrototypeOf","_inherits","mounted","copyInputStyles","updateInputWidth","prevProps","prevState","onAutosize","inputStyles","scrollWidth","newInputWidth","placeholder","placeholderIsMinWidth","extraWidth","parseInt","setState","select","injectStyles","sizerValue","reduce","previousValue","currentValue","wrapperStyle","inputStyle","boxSizing","inputProps","_objectWithoutProperties","field","cleanInputProps","inputClassName","renderStyles","onChange","__self","__source","jsx","jsxs","forceUpdate","escape","_status","_result","IsSomeRendererActing","count","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","createFactory","isValidElement","lazy","memo","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","floor","port2","port1","onmessage","postMessage","pop","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","getter","definition","chunkId","all","promises","miniCssF","prop","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","charset","onScriptComplete","onerror","onload","doneFns","head","nmd","paths","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","favoriteReducer","filter","denominationReducer","StoredStateContext","React","storedState","favorites","denomination","mainReducer","_ref","StoredStateProvider","_ref2","initialArg","item","localStorage","getItem","parse","setItem","_jsx","pauseReducer","refreshPaused","accountReducer","account","errorReducer","hasError","connectionReducer","status","loadingDataReducer","transactionReducer","isInProgress","needsSignature","txHash","termsReducer","StateContext","connection","loadingData","transaction","termsAccepted","StateProvider","getPercent","percentageValue","secondValue","toFixed","perquintillToPercentage","precision","percent","toBigInt","Number","BarItem","amount","percentage","barWidth","cx","TokenBar","staked","stakeable","down","has_staked","has_stakeable","container_width","stakedPercentage","stakeablePercentage","_jsxs","isSafeInteger","bytes","Uint8Array","lengths","includes","hash","outputLen","blockLen","exists","checkFinished","destroyed","finished","crypto","globalThis","u32","arr","Uint32Array","buffer","byteOffset","isBytes","createView","DataView","rotr","toBytes","TextEncoder","encode","utf8ToBytes","Hash","_cloneInto","wrapConstructor","hashCons","hashC","update","digest","wrapConstructorWithOpts","opts","randomBytes","bytesLength","SIGMA","BLAKE2","keyLen","saltLen","persLen","super","pos","salt","personalization","buffer32","buf","compress","take","dataOffset","subarray","data32","pos32","digestInto","fill","out32","dkLen","U32_MASK64","BigInt","_32n","fromBig","lst","Al","rotlSH","rotlSL","rotlBH","rotlBL","u64","toBig","shrSH","_l","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","rotr32H","_h","rotr32L","Bl","add3L","Cl","add3H","low","add4L","Dl","add4H","add5H","add5L","El","IV","BUF","G1","Xl","ll","G2","BLAKE2b","v0l","v0h","v1l","v1h","v2l","v2h","v3l","v3h","v4l","v4h","v5l","v5h","v6l","v6h","v7l","v7h","keyLength","pers","isLast","blake2b","CHR","U8","U16","hexToU8a","startsWith","decLength","endLength","result","xglobal","global","Function","extractGlobal","invalidFallback","NaN","hasBigInt","hasBuffer","isBuffer","hasProcess","process","isFunction","readDoubleLE","REGEX_HEX_PREFIXED","REGEX_HEX_NOPREFIX","isHex","ignoreLength","isU8a","u8a","encoder","Fallback","stringToU8a","u8aToU8a","TextDecoder","encoding","__encoding","decode","decoder","u8aToString","DEFAULT_CRYPTO","getRandomValues","DEFAULT_SELF","Wbg","bridge","abort","__wbindgen_is_undefined","idx","__internal__bridge","getObject","__wbindgen_throw","ptr","getString","__wbg_self_1b7a39e3a92c949c","addObject","__wbg_require_604837428532a733","__wbg_crypto_968f1772287e2df0","_idx","__wbg_getRandomValues_a3d34b4fee3c2869","__wbg_getRandomValues_f5e14ab7ac8e995d","_arg0","getU8a","__wbg_randomFillSync_d5bd2d655fdf256a","_ptr","_len","__wbindgen_object_drop_ref","takeObject","createWasmFn","root","wasmBytes","asmFn","async","wasm","WebAssembly","instantiate","wbg","u8","u16","Uint16Array","clim","fleb","fdeb","freb","fl","revfl","rev","hMap","co","rvb","sv","flt","fdt","flrm","fdrm","bits16","inflt","dat","st","noSt","sl","noBuf","cbuf","bl","nbuf","final","bt","lm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","dt","lms","dms","mxa","sym","dsym","slc","unzlibSync","zlv","chr","byte","base64Decode","lenIn","lenOut","createWasm","__internal__createWasm","__internal__cachegetInt32","__internal__cachegetUint8","__internal__heap","__internal__heapNext","__internal__type","__internal__wasm","__internal__wasmError","__internal__wasmPromise","__internal__wbg","dropObject","getInt32","memory","Int32Array","getUint8","allocU8a","__wbindgen_malloc","allocString","resultU8a","r0","r1","__wbindgen_free","resultString","withWasm","params","_key","secp256k1Expand","pubkey","ext_secp_pub_expand","ext_blake2b","keccak256","ext_keccak256","keccak512","ext_keccak512","twox","rounds","ext_twox","isReady","waitReady","init","initBridge","padStart","hex","u8aToHex","empty","createAsHex","createDualHasher","js","onlyJs","blake2AsU8a","blake2bJs","blake2AsHex","assertNumber","chain","wrap","reduceRight","alphabet","digits","separator","normalize","convertRadix","digit","digitBase","rounded","reverse","radix2carry","convertRadix2","radix","radix2","revPadding","base16","base32","base64","base64url","genBase58","abc","base58","XMR_BLOCK_LEN","base58xmr","block","utf8","createDecode","validate","coder","ipfs","ipfsCompat","createEncode","createValidate","_ref3","chars","withPadding","config","base58Validate","base58Decode","base58Encode","u8aConcat","u8as","u8aConcatStrict","SS58_PREFIX","sshash","knownLedger","acala","ajuna","astar","bifrost","centrifuge","composable","darwinia","edgeware","enjin","equilibrium","genshiro","hydradx","karura","khala","kusama","matrixchain","nodle","origintrail","parallel","pendulum","phala","picasso","polkadex","polkadot","polymesh","sora","stafi","statemine","statemint","ternoa","unique","vtb","xxnetwork","zeitgeist","knownGenesis","basilisk","bittensor","cere","kulupu","p3d","rococo","subsocial","westend","knownIcon","westmint","knownTestnet","jupiter","p3dt","subspace_testnet","UNSORTED","TESTNETS","availableNetworks","knownSubstrate","_o$decimals","_o$symbols","network","nameParts","slip44","hasLedgerSupport","genesisHash","icon","isTestnet","isIgnored","standardAccount","decimals","sort","isUnSortedA","localeCompare","selectableNetworks","defaults","allowedDecodedLengths","allowedEncodedLengths","allowedPrefix","decodeAddress","encoded","ignoreChecksum","ss58Format","decoded","isValid","endPos","ss58Length","ss58Decoded","isPublicKey","checkAddressChecksum","blake2","SCHEMA","colors","freq","cube","quazar","flower","cyclic","vmirror","hmirror","OUTER_CIRCLE","cy","zeroHash","getCircleXY","isSixPoint","r3o4","ro2","ro4","rroot3o2","rroot3o4","getRotation","getColors","address","values","addressToId","rot","sat","scheme","cum","schema","find","findScheme","palette","AddressIcon","circles","isAlternative","xy","polkadotIcon","viewBox","circle","CheckmarkIcon","Identicon","didCopy","setDidCopy","clipboard","writeText","objectSpread","entries","u8aEq","u8aa","u8ab","dvA","dvB","getUint32","encodeAddress","win","injectedWeb3","isWeb3Injected","web3IsInjected","web3EnablePromise","connect","enable","throwError","mapAccounts","list","filterAccounts","filterEnable","extensions","_ref5","web3Enable","originName","compatInits","initCompat","creator","nameOrHash","_ref4","exts","getWindowExtensions","accounts","_ref6","info","readyState","web3Accounts","accountType","sources","retrieved","_ref7","web3FromSource","found","_ref10","zeroPad","isBn","isObject","identity","noop","logTo","debug","loggerFormat","formatOther","maxSize","fnResult","maxLength","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","isDebugOn","endsWith","isDebugOff","getDebugFlag","env","flag","logger","origin","isDebug","parseEnv","_len2","_key2","_len3","_key3","_len4","_key4","isUndefined","isOn","fns","every","isOnFunction","isOnObject","isClass","isNull","WebSocket","isString","isBigInt","replacer","space","isNumber","UNKNOWN","that","RpcError","captureStackTrace","CODES","ASSERT","INVALID_JSONRPC","METHOD_NOT_FOUND","checkError","formatted","formatErrorData","RpcCoder","__internal__id","decodeResponse","response","jsonrpc","isSubscription","subscription","encodeJson","encodeObject","LRUNode","LRUCache","capacity","__internal__data","__internal__refs","__internal__length","__internal__head","__internal__tail","lengthData","lengthRefs","curr","__internal__toHead","known","ALIASES","chain_finalisedHead","chain_subscribeFinalisedHeads","chain_unsubscribeFinalisedHeads","eraseRecord","record","WsProvider","endpoint","autoConnectMs","headers","__internal__callCache","__internal__handlers","__internal__waitingForId","__internal__isConnected","__internal__subscriptions","__internal__timeoutId","__internal__emit","__internal__eventemitter","__internal__onSocketClose","reason","getWSErrorString","__internal__autoConnectMs","__internal__websocket","onclose","onopen","clearInterval","__internal__endpointStats","bytesRecv","bytesSent","cached","errors","requests","subscriptions","connectWithRetry","__internal__onSocketError","__internal__onSocketMessage","__internal__stats","__internal__onSocketMessageResult","__internal__onSocketMessageSubscribe","handler","__internal__coder","subId","__internal__onSocketOpen","__internal__resubscribe","__internal__timeoutHandlers","ids","__internal__timeout","endpoints","__internal__endpointIndex","__internal__endpoints","__internal__headers","active","__internal__isReadyPromise","hasSubscriptions","isClonable","selectEndpointIndex","Parent","Child","isPrototypeOf","setInterval","stats","endpointStats","send","isCacheable","resultPromise","__internal__send","packageInfo","URL","import","pathname","lastIndexOf","findCall","registry","callIndex","findMetaCall","findError","errorIndex","findMetaError","createErrorClass","createImpl","ctorFunc","EmptyError","_super","extendStatics","__extends","__","__awaiter","thisArg","_arguments","generator","fulfilled","step","rejected","__generator","label","sent","trys","ops","verb","op","__values","__read","ar","__spreadArray","pack","__await","__asyncGenerator","asyncIterator","resume","fulfill","settle","__asyncValues","SuppressedError","UnsubscriptionError","arrRemove","initialTeardown","closed","_parentage","_finalizers","Subscription","remove","initialFinalizer","finalizer","execFinalizer","teardown","_hasParent","_addParent","parent","_removeParent","EMPTY_SUBSCRIPTION","EMPTY","unsubscribe","onUnhandledError","onStoppedNotification","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","_i","delegate","handle","reportUnhandledError","COMPLETE_NOTIFICATION","createNotification","kind","errorContext","isRoot","errorThrown","destination","EMPTY_OBSERVER","Subscriber","complete","SafeSubscriber","isStopped","handleStoppedNotification","nextNotification","_next","_error","_complete","_bind","partialObserver","ConsumerObserver","handleUnhandledError","observerOrNext","context_1","notification","subscriber","firstValueFrom","hasConfig","isArrayLike","isPromise","observable","pipeFromArray","_subscribe","Observable","operator","isObserver","_trySubscribe","sink","promiseCtor","getPromiseCtor","Symbol_observable","operations","isInteropObservable","isAsyncIterable","createInvalidObservableTypeError","isIterable","Symbol_iterator","readableStreamLikeToAsyncGenerator","readableStream","reader","getReader","read","_a","_b","releaseLock","isReadableStreamLike","innerFrom","obs","fromAsyncIterable","iterable","asyncIterable","asyncIterable_1","hasLift","lift","operate","liftedSource","createOperatorSubscriber","onNext","onComplete","onFinalize","OperatorSubscriber","shouldUnsubscribe","closed_1","switchMap","project","resultSelector","innerSubscriber","isComplete","checkComplete","innerIndex","outerIndex","innerValue","popScheduler","schedule","executeSchedule","parentSubscription","scheduler","work","scheduleSubscription","observeOn","subscribeOn","scheduleAsyncIterable","scheduled","pipe","scheduleObservable","scheduleArray","schedulePromise","scheduleIterable","scheduleReadableStreamLike","objectProperty","getName","objectProperties","hasEq","compareMapArray","notEntry","hasMismatch","compareMap","Json","decodeJson","encodedLength","toU8a","isEmpty","other","getT","toHex","toHuman","json","toPrimitive","toRawType","_isBare","isAsciiBytes","isAscii","isAsciiStr","Raw","species","initialU8aLength","isUtf8","outer","toUtf8","DoNotConstruct","typeName","__internal__neverError","static","u8aToBn","isLe","isNegative","compactFromU8a","compactFromU8aLim","BN_ZERO","BN_ONE","BN_TWO","BN_HUNDRED","BN_MILLION","BN_BILLION","BN_QUINTILL","BN_MAX_INTEGER","MAX_SAFE_INTEGER","BN_SQRT_MAX_INTEGER","hexToBn","stripped","hexStripPrefix","bn","isToBigInt","isToBn","bnToBn","toBn","DEFAULT_OPTS","bnToU8a","valueBn","MAX_U8","MAX_U16","MAX_U32","BL_16","BL_32","compactToU8a","compareArray","AbstractArray","inspectInner","isExtended","isBare","toU8aInner","CC_TO_UP","CC_TO_LO","formatAllCaps","converter","format","parts","stringCamelCase","stringPascalCase","typeToConstructor","createClassUnsafe","typesToConstructors","types","mapToTypeMap","typesToMap","Types","getClassName","Null","extractDef","_def","def","isBasic","isIndexed","Type","defValues","isRustEnum","getEntryType","checkIdx","createFromU8a","createFromValue","decodeFromJSON","keyLower","Enum","setDefinition","decodeEnum","__internal__def","__internal__isBasic","__internal__isIndexed","__internal__indexes","__internal__entryIndex","__internal__raw","asKeys","isKeys","isNone","defIndexes","defKeys","entry","_toRawStruct","_enum","isBoolean","formatFailure","decodeU8a","decodeU8aVec","startAt","noopSetDefinition","Struct","jsonMap","typeMap","decodedLength","decodeU8aStruct","jsonObj","typeofArray","typeofMap","raw","jsonKey","ecount","decodeStructFromObject","__internal__jsonMap","__internal__Types","getAtIndex","checkCodec","checkRegistry","isCodec","isEnum","isNumberLike","sortAsc","sortRes","minLen","sortArray","decodeMapFromMap","KeyClass","ValClass","isComplex","decodeMap","keyType","valType","decodeMapFromU8a","CodecMap","rawValue","keyA","keyB","sortMap","__internal__KeyClass","__internal__ValClass","BTreeMap","compareSetArray","decodeSet","decodeSetFromU8a","decodeSetFromSet","BTreeSet","strings","Compact","__internal__Type","unwrap","decodeCompact","HashMap","NUMBER_REGEX","RegExp","formatDecimal","matched","getSeparator","decimal","toLocaleString","thousand","SI_MID","SI","power","findSi","calcSi","forceUnit","siDefIndex","DEFAULT_UNIT","defaultDecimals","defaultUnit","formatBalance","withAll","withSi","withSiFull","withUnit","withZero","sign","pre","post","padEnd","unit","units","formatNumber","getDefaults","getOptions","setDefaults","MUL_P","FORMATTERS","decodeAbstractInt","isInteger","MIN_SAFE_INTEGER","AbstractInt","isSigned","u8aToNumber","__internal__bitLength","isUnsigned","maxBits","isMax","bnToHex","_isExpanded","rawType","chainDecimals","chainTokens","divisor","toPercentage","Int","None","Option","decodeOption","isSome","wrapped","unwrapOr","unwrapOrDefault","Tuple","Classes","decodeTuple","Range","rangeName","__internal__rangeName","RangeInclusive","Result","Ok","Err","asErr","isErr","asOk","isOk","encodeSet","setValues","decodeSetNumber","_value","computed","decodeSetArray","CodecSet","__internal__allowed","__internal__byteLength","valueEncoded","_set","UInt","compactAddLength","MAX_LENGTH","Bytes","decodeBytesU8a","clength","decodeVec","Vec","decodeFrom","decodeVecLength","U8aFixed","decodeU8aFixed","VecFixed","compactStripLength","WrapperKeepOpaque","opaqueName","decodeRaw","__internal__decoded","__internal__opaqueName","isDecoded","WrapperOpaque","TypeDefInfo","BOUNDED","ALLOWED_BOXES","BOX_PRECEDING","mappings","alias","findClosing","removeExtensions","from1","from2","from3","from4","from5","from6","lastIndex","removeTraits","replaceTagWith","removePairOf","removeWrap","box","flattenSingleTuple","depth","withChecks","matcher","isSized","sanitizeMap","sanitize","startValue","memoized","KNOWN_INTERNALS","getTypeString","typeOrObj","_decodeEnum","details","fallbackType","Plain","getTypeDef","_decodeTuple","subType","typeSplit","_decodeAnyInt","clazz","strLength","hasWrapper","nestedExtraction","vecType","parsed","_fallback","_bitLength","_decodeSet","_alias","NAME_LENGTH","wrappedExtraction","Linkage","extractSubType","_type","nested","getTypeDefType","lookupName","getSubDefArray","getSubType","getSubDef","getTypeClassMap","subs","getTypeClassArray","createInt","Clazz","with","createHashMap","valueType","createWithSub","infoMapping","_registry","previous","getOrUnknown","getTypeClass","lookup","typeDef","getUnsafe","isLookupType","checkInstance","created","initType","blockHash","isFallback","isOptional","isPedantic","checkPedantic","createdAtHash","createTypeUnsafe","isStorageFallback","_Clazz","firstError","__fallbackType","lazyMethod","lazyMethods","items","assertReturn","condition","emptyCheck","extrinsic","CheckMortality","era","allExtensions","ChargeTransactionPayment","tip","CheckBlockGasLimit","CheckEra","CheckGenesis","CheckNonZeroSender","CheckNonce","nonce","CheckSpecVersion","specVersion","CheckTxVersion","transactionVersion","CheckVersion","CheckWeight","LockStakingStatus","ValidateEquivocationReport","LimitParathreadCommits","OnlyStakingAndClaims","PrevalidateAttests","RestrictFunctionality","TransactionCallFilter","ValidateDoubleVoteReports","DisallowSigned","ChargeAssetTxPayment","assetId","fallbackExtensions","expandExtensionTypes","userExtensions","GenericEventData","section","fields","createLookupType","__internal__names","__internal__meta","__internal__method","__internal__section","__internal__typeDef","sanitizeField","GenericEvent","DataType","findMetaEvent","decodeEvent","isExpanded","docs","AbstractBase","GenericExtrinsicV4","signature","decodeExtrinsic","addSignature","signer","signFake","BIT_SIGNED","EMPTY_U8A","DEFAULT_VERSION","IMMORTAL_ERA","UNMASK_VERSION","VERSIONS","newFromValue","GenericExtrinsic","ExtrinsicBase","signKeys","getSignedExtensionTypes","argsDef","__internal__hashCache","LATEST_EXTRINSIC_VERSION","__UIntType","decodeMortalEra","U64","first","second","period","quantizeFactor","phase","decodeMortalU8a","calPeriod","log2","quantizedPhase","decodeMortalObject","decodeExtrinsicEra","GenericExtrinsicEra","mortal","immortal","MortalEra","ImmortalEra","binary","getTrailingZeros","birth","death","isImmortalEra","asImmortalEra","asMortalEra","isMortalEra","GenericExtrinsicPayload","decodeExtrinsicPayload","signerPair","GenericExtrinsicPayloadUnknown","GenericExtrinsicUnknown","knownTypes","blockNumber","runtimeVersion","signedExtensions","GenericSignerPayload","extensionTypes","getSignedExtensionExtra","__internal__extraTypes","toPayload","toRaw","GenericExtrinsicPayloadV4","__internal__signOptions","withType","FAKE_SIGNATURE","toAddress","GenericExtrinsicSignatureV4","signTypes","decodeExtrinsicSignature","__internal__signKeys","multiSignature","_injectSignature","createPayload","addressRaw","decodeAccountId","BaseAccountId","allowedBits","chainSS58","GenericAccountId","GenericAccountId33","MAX_1BYTE","MAX_2BYTE","MAX_4BYTE","decodeAccountIndex","GenericAccountIndex","calcLength","GenericBlock","header","extrinsics","contentHash","getArgsDef","decodeCall","_meta","firstCallIndex","decodeCallViaU8a","lookupIndex","GenericCallIndex","decodeCallViaObject","GenericCall","argsEntries","_call","_call2","createValue","asArray","decodeValue","isEthereum","tokenDecimals","tokenSymbol","GenericChainProperties","CID_AURA","CID_BABE","CID_GRPA","CID_POW","CID_NMBS","GenericConsensusEngineId","isAura","isBabe","isGrandpa","isPow","isNimbus","extractAuthor","sessionValidators","slotNumber","getAuraAuthor","getBabeAuthor","getBytesAsAuthor","ACCOUNT_ID_PREFIX","decodeAddressOrIndex","GenericLookupSource","readLength","decodeString","rawLength","_rawLength","writeLength","Address20","Index","GenericMultiAddress","Address32","decodeMultiAny","Boolean","isFalse","isTrue","AYE_BITS","NAY_BITS","DEF_CONV","decodeVoteBool","decodeVote","decodeVoteU8a","Bool","aye","conviction","decodeVoteType","GenericVote","__internal__aye","__internal__conviction","isAye","isNay","vote","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","Keccak","suffix","enableXOF","posOut","state32","keccak","idx1","idx0","B0","B1","Tl","curH","curL","keccakP","finish","writeInto","bufferOut","xofInto","xof","gen","keccakAsU8a","isEthereumAddress","_address","isEthereumChecksum","SHA2","padOffset","isLE","dataView","roundClean","setBigUint64","_u32_max","wl","setUint32","oview","Maj","SHA256_K","SHA256_W","SHA256","W15","W2","s0","s1","T1","T2","Chi","sha256","hexes","bytesToHex","numberToHexUnpadded","hexToNumber","asciis","_0","_9","_A","_F","_f","asciiToBase16","hexToBytes","hl","al","n1","n2","bytesToNumberBE","bytesToNumberLE","numberToBytesBE","numberToBytesLE","numberToVarBytesBE","ensureBytes","title","expectedLength","concatBytes","sum","pad","equalBytes","bitLen","bitGet","bitSet","bitMask","u8n","u8fr","createHmacDrbg","hashLen","qByteLen","hmacFn","reset","reseed","seed","genUntil","pred","validatorFns","function","boolean","stringOrUint8Array","Fp","validateObject","validators","optValidators","checkField","fieldName","checkVal","_3n","_4n","_5n","_8n","modulo","pow2","invert","FpSqrt","p1div4","eql","c1","nv","ONE","legendreC","Q1div2","ZERO","t2","tonelliShanks","FIELD_FIELDS","nLength","nBitLength","_nBitLength","nByteLength","getFieldBytesLength","fieldOrder","getMinHashLength","HMAC","assertHash","iHash","oHash","assertExists","assertBytes","hmac","validateBasic","curve","ORDER","MASK","BYTES","BITS","validateField","Gx","Gy","freeze","b2n","h2b","ut","DER","_parseInt","toSig","sBytes","rBytesLeft","hexFromSig","sig","rhl","rl","weierstrassPoints","CURVE","allowedPrivateKeyLengths","wrapPrivateKey","isTorsionFree","clearCofactor","allowInfinityPoint","fromBytes","endo","beta","splitScalar","validatePointOpts","_c","point","_isCompressed","toAffine","weierstrassEquation","x3","isWithinCurveOrder","assertGE","normPrivateKeyToScalar","pointPrecomputes","assertPrjPoint","Point","px","py","pz","is0","points","toInv","invertBatch","fromAffine","assertValidity","privateKey","BASE","multiply","_setWindowSize","windowSize","_WINDOW_SIZE","hasEvenY","equals","X1","Y1","Z1","X2","Y2","Z2","U1","U2","negate","double","X3","Y3","Z3","t0","t1","t3","t4","t5","subtract","wNAF","wnaf","wNAFCached","comp","multiplyUnsafe","unsafeLadder","k1neg","k1","k2neg","k2","k1p","k2p","scalar","f1p","f2p","constTimeNegate","normalizeZ","multiplyAndAddUnsafe","iz","ax","ay","zz","cofactor","toRawBytes","isCompressed","_bits","windows","elm","precomputeWindow","precomputes","maxNumber","shiftBy","wbits","offset1","offset2","cond1","cond2","precomputesMap","ProjectivePoint","weierstrass","curveDef","bits2int","bits2int_modN","lowS","validateOpts","CURVE_ORDER","compressedLen","uncompressedLen","modN","invN","cat","y2","numToNByteStr","isBiggerThanHalfOrder","slcNum","Signature","recovery","addRecoveryBit","recoverPublicKey","msgHash","radj","fromHex","ir","u1","u2","hasHighS","normalizeS","toDERRawBytes","toDERHex","toCompactRawBytes","toCompactHex","utils","isValidPrivateKey","randomPrivateKey","fieldLen","reduced","precompute","isProbPub","ORDER_MASK","int2octets","prepSig","defaultSigOpts","prehash","extraEntropy","ent","h1int","seedArgs","k2sig","kBytes","normS","defaultVerOpts","getPublicKey","fromPrivateKey","getSharedSecret","privateA","publicB","privKey","drbg","verify","publicKey","_sig","fromDER","derError","fromCompact","_Point$BASE$multiplyA","getHash","msgs","secp256k1P","secp256k1N","divNearest","sqrtMod","_6n","_11n","_22n","_23n","_44n","_88n","b11","b22","b44","b88","b176","b220","b223","redef","sqrtP","lhs","rhs","FpPow","sqrN","addN","subN","mulN","nums","lastMultiplied","inverted","FpInvertBatch","cmov","Field","secp256k1","defHash","createCurve","POW_2_128","c2","BN_BE_256_OPTS","getH160","GenericEthereumAccountId","addressOrPublic","u8aAddress","ethereumEncode","GenericEthereumLookupSource","decodeBitVec","decodeBitVecU8a","BitVec","isMsb","__internal__decodedLength","__internal__isMsb","toBoolArray","bitVec","Float","dv","getFloat32","getFloat64","u8aToFloat","setFloat32","setFloat64","floatToU8a","f32","__FloatType","f64","i8","__IntType","i16","i32","i64","i128","i256","isize","OptionBool","Text","decodeText","__internal__override","setOverride","override","u128","u256","usize","decodeData","indicator","decodeDataU8a","Data","BlakeTwo256","Sha256","Keccak256","ShaThree256","isRaw","asRaw","asBlakeTwo256","asKeccak256","asSha256","asShaThree256","isBlakeTwo256","isKeccak256","isSha256","isShaThree256","getSiName","unwrapStorageType","outputType","isPlain","asPlain","asMap","unwrapStorageSi","HASHER_MAP","Blake2_128","Blake2_128Concat","Blake2_256","Identity","Twox128","Twox256","Twox64Concat","decodeArgsFromMeta","isMap","hashers","getSiType","asTuple","hasher","canDecode","decodeHashers","StorageKey","decodeStorageKey","__internal__outputType","getType","setMeta","getMeta","__internal__args","META_V1_TO_V2","metadata","description","Si1Variant","v1","Si1Field","Si1LookupTypeId","Si1Path","Si1Type","path","Si1TypeDef","Composite","Variant","Sequence","Primitive","BitSequence","HistoricMetaCompat","Si1TypeDefArray","Si1TypeDefBitSequence","bitStoreType","bitOrderType","Si1TypeDefCompact","Si1TypeDefComposite","Si1TypeDefPrimitive","Si1TypeDefSequence","Si1TypeDefTuple","Si1TypeParameter","Si1TypeDefVariant","variants","rpc","Metadata","methods","metadata_at_version","metadata_versions","ErrorMetadataV9","EventMetadataV9","FunctionArgumentMetadataV9","FunctionMetadataV9","MetadataV9","modules","ModuleConstantMetadataV9","ModuleMetadataV9","storage","calls","constants","StorageEntryMetadataV9","modifier","StorageEntryModifierV9","StorageEntryTypeV9","linked","DoubleMap","key1","key2","key2Hasher","StorageHasherV9","StorageMetadataV9","ErrorMetadataV10","EventMetadataV10","FunctionArgumentMetadataV10","FunctionMetadataV10","MetadataV10","ModuleConstantMetadataV10","ModuleMetadataV10","StorageEntryModifierV10","StorageEntryMetadataV10","StorageEntryTypeV10","StorageMetadataV10","StorageHasherV10","ErrorMetadataV11","EventMetadataV11","ExtrinsicMetadataV11","FunctionArgumentMetadataV11","FunctionMetadataV11","MetadataV11","ModuleConstantMetadataV11","ModuleMetadataV11","StorageEntryModifierV11","StorageEntryMetadataV11","StorageEntryTypeV11","StorageMetadataV11","StorageHasherV11","ErrorMetadataV12","EventMetadataV12","ExtrinsicMetadataV12","FunctionArgumentMetadataV12","FunctionMetadataV12","MetadataV12","ModuleConstantMetadataV12","ModuleMetadataV12","StorageEntryModifierV12","StorageEntryMetadataV12","StorageEntryTypeV12","StorageMetadataV12","StorageHasherV12","ErrorMetadataV13","EventMetadataV13","ExtrinsicMetadataV13","FunctionArgumentMetadataV13","FunctionMetadataV13","MetadataV13","ModuleConstantMetadataV13","ModuleMetadataV13","StorageEntryModifierV13","StorageEntryMetadataV13","StorageEntryTypeV13","NMap","keyVec","StorageMetadataV13","StorageHasherV13","PortableTypeV14","ErrorMetadataV14","EventMetadataV14","FunctionArgumentMetadataV14","FunctionMetadataV14","ExtrinsicMetadataV14","MetadataV14","pallets","PalletCallMetadataV14","PalletConstantMetadataV14","PalletErrorMetadataV14","PalletEventMetadataV14","PalletMetadataV14","PalletStorageMetadataV14","SignedExtensionMetadataV14","identifier","additionalSigned","StorageEntryMetadataV14","StorageEntryModifierV14","StorageEntryTypeV14","StorageHasherV14","CustomMetadata15","CustomValueMetadata15","ExtrinsicMetadataV15","addressType","callType","signatureType","extraType","OuterEnums15","eventType","PalletMetadataV15","RuntimeApiMetadataV15","RuntimeApiMethodMetadataV15","inputs","RuntimeApiMethodParamMetadataV15","MetadataV15","apis","outerEnums","custom","ErrorMetadataLatest","EventMetadataLatest","ExtrinsicMetadataLatest","FunctionArgumentMetadataLatest","FunctionMetadataLatest","MetadataLatest","PalletCallMetadataLatest","PalletConstantMetadataLatest","PalletErrorMetadataLatest","PalletEventMetadataLatest","PalletMetadataLatest","PalletStorageMetadataLatest","PortableType","RuntimeApiMetadataLatest","SignedExtensionMetadataLatest","StorageEntryMetadataLatest","StorageEntryModifierLatest","StorageEntryTypeLatest","StorageHasher","OpaqueMetadata","MetadataAll","V0","V1","V2","V3","V4","V5","V6","V7","V8","V9","V10","V11","V12","V13","V14","V15","CORE_V1_TO_V4","execute_block","CORE_V1_TO_V2","CORE_V2_TO_V4","initialize_block","Core","initialise_block","knownOrigins","Council","System","TechnicalCommittee","Xcm","XcmPallet","Authority","GeneralCouncil","Fixed64","FixedI64","FixedU64","Fixed128","FixedI128","FixedU128","I32F32","U32F32","PerU16","Perbill","Percent","Permill","Perquintill","AccountId","AccountId20","AccountId32","AccountId33","AccountIdOf","AccountIndex","Address","AssetId","Balance","BalanceOf","Block","BlockNumber","BlockNumberFor","BlockNumberOf","Call","CallHash","CallHashOf","ChangesTrieConfiguration","digestInterval","digestLevels","ChangesTrieSignal","NewConfiguration","ConsensusEngineId","CodecHash","CrateVersion","major","minor","patch","Digest","logs","DigestItem","Other","AuthoritiesChange","ChangesTrieRoot","SealV0","Consensus","Seal","PreRuntime","RuntimeEnvironmentUpdated","ExtrinsicsWeight","normal","operational","H32","H64","H128","H160","H256","H512","H1024","H2048","Header","parentHash","stateRoot","extrinsicsRoot","HeaderPartial","IndicesLookupSource","Justification","EncodedJustification","Justifications","KeyValue","KeyTypeId","LockIdentifier","LookupSource","LookupTarget","ModuleId","MultiAddress","MultiSigner","Ed25519","Sr25519","Ecdsa","Moment","OpaqueCall","Origin","OriginCaller","PalletId","PalletsOrigin","PalletVersion","Pays","Phantom","PhantomData","Releases","RuntimeCall","RuntimeEvent","RuntimeDbWeight","write","SignedBlock","SignedBlockWithJustification","justification","SignedBlockWithJustifications","justifications","Slot","SlotDuration","StorageData","StorageInfo","palletName","storage_name","maxValues","StorageProof","trieNodes","TransactionPriority","TransactionLongevity","TransactionTag","TransactionInfo","dataSize","chunkRoot","blockChunks","TransactionStorageProof","chunk","proof","ValidatorId","ValidatorIdOf","WeightV0","WeightV1","WeightV2","refTime","proofSize","Weight","WeightMultiplier","Si0Field","Si0LookupTypeId","Si0Path","Si0Type","Si0TypeDef","Si0TypeDefArray","Si0TypeDefBitSequence","Si0TypeDefCompact","Si0TypeDefComposite","Si0TypeDefPhantom","Si0TypeDefVariant","Si0TypeDefPrimitive","Si0TypeDefSequence","Si0TypeDefTuple","Si0TypeParameter","Si0Variant","discriminant","SiField","SiLookupTypeId","SiPath","SiType","SiTypeDef","SiTypeDefArray","SiTypeDefBitSequence","SiTypeDefCompact","SiTypeDefComposite","SiTypeDefPrimitive","SiTypeDefSequence","SiTypeDefTuple","SiTypeParameter","SiTypeDefVariant","SiVariant","AssetConversionApi","get_reserves","quote_price_exact_tokens_for_tokens","quote_price_tokens_for_exact_tokens","AssetsApi","account_balances","AssetApprovalKey","owner","AssetApproval","deposit","AssetBalance","balance","isFrozen","isSufficient","AssetDestroyWitness","sufficients","approvals","AssetDetails","issuer","admin","freezer","supply","minBalance","AssetMetadata","TAssetBalance","TAssetDepositBalance","AuraApi","authorities","slot_duration","RawAuraPreDigest","UncleEntryItem","InclusionHeight","Uncle","V1_V2_SHARED","current_epoch","current_epoch_start","generate_key_ownership_proof","next_epoch","submit_report_equivocation_unsigned_extrinsic","epochAuthorship","isUnsafe","BabeApi","configuration","AllowedSlots","BabeAuthorityWeight","BabeEpochConfiguration","allowedSlots","BabeBlockWeight","BabeEquivocationProof","offender","firstHeader","secondHeader","BabeGenesisConfiguration","slotDuration","epochLength","genesisAuthorities","randomness","BabeGenesisConfigurationV1","secondarySlots","BabeWeight","MaybeRandomness","MaybeVrf","Epoch","epochIndex","startSlot","duration","EpochAuthorship","primary","secondary","secondary_vrf","NextConfigDescriptor","NextConfigDescriptorV1","OpaqueKeyOwnershipProof","Randomness","RawBabePreDigest","Primary","SecondaryPlain","SecondaryVRF","RawBabePreDigestPrimary","authorityIndex","vrfOutput","vrfProof","RawBabePreDigestSecondaryPlain","RawBabePreDigestSecondaryVRF","RawBabePreDigestTo159","Secondary","RawBabePreDigestPrimaryTo159","weight","RawBabePreDigestSecondaryTo159","RawBabePreDigestCompat","Zero","One","Two","Three","SlotNumber","VrfData","VrfOutput","VrfProof","AccountData","free","reserved","miscFrozen","feeFrozen","BalanceLockTo212","until","reasons","BalanceLock","BalanceStatus","Reasons","ReserveData","ReserveIdentifier","VestingSchedule","perBlock","startingBlock","WithdrawReasons","TransactionPayment","Transfer","Reserve","Fee","Tip","BEEFY_V1_V3","beefy_genesis","validator_set","getFinalizedHead","subscribeJustifications","pubsub","BeefyApi","BeefyMmrApi","authority_set_proof","next_authority_set_proof","BeefyAuthoritySet","BeefyCommitment","validatorSetId","BeefyId","BeefyEquivocationProof","BeefySignedCommitment","commitment","signatures","BeefyNextAuthoritySet","BeefyPayload","BeefyPayloadId","BeefyVoteMessage","MmrRootHash","ValidatorSetId","ValidatorSet","Benchmark","benchmark_metadata","dispatch_benchmark","BenchmarkBatch","pallet","benchmark","results","BenchmarkConfig","selectedComponents","internalRepeats","BenchmarkList","benchmarks","BenchmarkMetadata","components","BenchmarkParameter","BenchmarkResult","extrinsicTime","storageRootTime","reads","repeatReads","writes","repeatWrites","benchKeys","BB_V2_TO_V4","random_seed","BB_V2_TO_V5","apply_extrinsic","BB_V2_TO_V6","check_inherents","inherent_extrinsics","BB_V3_TO_V6","finalize_block","BlockBuilder","finalise_block","CheckInherentsResult","okay","fatalError","InherentData","InherentIdentifier","CollectiveOrigin","Members","Member","MemberCount","ProposalIndex","VotesTo230","threshold","ayes","nays","Votes","AuthorityId","RawVRFOutput","SHARED_V1_V2","get_storage","upload_code","deprecated","isHistoric","getStorage","rentProjection","uploadCode","ContractsApi","AliveContractInfo","trieId","storageSize","pairCount","codeHash","rentAllowance","rentPaid","deductBlock","lastWrite","_reserved","CodeHash","CodeSource","Upload","Existing","CodeUploadRequest","storageDepositLimit","CodeUploadResult","CodeUploadResultValue","ContractCallRequest","gasLimit","inputData","ContractExecResultSuccessTo255","ContractExecResultTo255","Success","ContractExecResultSuccessTo260","gasConsumed","ContractExecResultTo260","ContractExecResultOk","ContractExecResultResult","ContractExecResultTo267","debugMessage","ContractExecResult","gasRequired","storageDeposit","ContractExecResultU64","ContractInfo","Alive","Tombstone","ContractCallFlags","ForwardInput","CloneInput","TailCall","AllowReentry","ContractReturnFlags","Revert","ContractStorageKey","DeletedContract","ExecReturnValue","Gas","HostFnWeightsTo264","gasLeft","valueTransferred","minimumBalance","tombstoneDeposit","weightToFee","gas","inputPerByte","returnPerByte","terminate","restoreTo","restoreToPerDelta","depositEvent","depositEventPerTopic","depositEventPerByte","setRentAllowance","setStorage","setStoragePerByte","clearStorage","getStoragePerByte","transfer","callTransferSurcharge","callPerInputByte","callPerOutputByte","instantiatePerInputByte","instantiatePerOutputByte","hashSha2256","hashSha2256PerByte","hashKeccak256","hashKeccak256PerByte","hashBlake2256","hashBlake2256PerByte","hashBlake2128","hashBlake2128PerByte","HostFnWeights","terminatePerCodeByte","restoreToPerCallerCodeByte","restoreToPerTombstoneCodeByte","callPerCodeByte","instantiatePerCodeByte","instantiatePerSaltByte","rentParams","InstantiateRequestV1","InstantiateRequestV2","InstantiateRequest","ContractInstantiateResultTo267","ContractInstantiateResultTo299","ContractInstantiateResult","ContractInstantiateResultU64","InstantiateReturnValueTo267","accountId","InstantiateReturnValueOk","InstantiateReturnValue","InstructionWeights","i64const","i64load","i64store","rIf","brIf","brIable","brIablePerEntry","callIndirect","callIndirectPerParam","localGet","localSet","local_tee","globalGet","globalSet","memoryCurrent","memoryGrow","i64clz","i64ctz","i64popcnt","i64eqz","i64extendsi32","i64extendui32","i32wrapi64","i64eq","i64ne","i64lts","i64ltu","i64gts","i64gtu","i64les","i64leu","i64ges","i64geu","i64add","i64sub","i64mul","i64divs","i64divu","i64rems","i64remu","i64and","i64or","i64xor","i64shl","i64shrs","i64shru","i64rotl","i64rotr","LimitsTo264","eventTopics","stackHeight","globals","parameters","memoryPages","tableSize","brTableSize","subjectLen","codeSize","Limits","PrefabWasmModule","scheduleVersion","initial","maximum","refcount","originalCodeLen","RentProjection","EvictionAt","NoEviction","ScheduleTo212","putCodePerByteCost","growMemCost","regularOpCost","returnDataPerByteCost","eventDataPerByteCost","eventPerTopicCost","eventBaseCost","sandboxDataReadCost","sandboxDataWriteCost","maxEventTopics","maxStackHeight","maxMemoryPages","enablePrintln","maxSubjectLen","ScheduleTo258","transferCost","ScheduleTo264","limits","instructionWeights","hostFnWeights","Schedule","SeedOf","StorageDeposit","Refund","Charge","TombstoneContractInfo","TrieId","AccountVote","Standard","Split","AccountVoteSplit","nay","AccountVoteStandard","Conviction","Delegations","votes","capital","PreimageStatus","Missing","Available","PreimageStatusAvailable","provider","since","expiry","PriorLock","PropIndex","Proposal","ProxyState","Open","Active","ReferendumIndex","ReferendumInfoTo239","proposalHash","ReferendumInfo","Ongoing","Finished","ReferendumInfoFinished","approved","ReferendumStatus","tally","Tally","turnout","Voting","Direct","Delegating","VotingDirect","delegations","prior","VotingDirectVote","VotingDelegating","getBlockStats","BlockStats","witnessLen","witnessCompactLen","blockNumExtrinsics","AuthorityDiscoveryApi","ApprovalFlag","DefunctVoter","who","voteCount","candidateCount","Renouncing","RunnerUp","Candidate","SetIndex","Vote","VoteIndex","VoterInfo","lastActive","lastWin","pot","stake","VoteThreshold","createBlock","finalizeBlock","CreatedBlock","aux","ImportedAux","headerOnly","clearJustificationRequests","needsJustification","badJustification","needsFinalityProof","isNewBest","EvmAccount","EvmCallInfo","exitReason","usedGas","EvmCreateInfo","EvmCallInfoV2","weightInfo","EvmCreateInfoV2","EvmLog","topics","EvmVicinity","gasPrice","EvmWeightInfo","refTimeLimit","proofSizeLimit","refTimeUsage","proofSizeUsage","ExitError","StackUnderflow","StackOverflow","InvalidJump","InvalidRange","DesignatedInvalid","CallTooDeep","CreateCollision","CreateContractLimit","OutOfOffset","OutOfGas","OutOfFund","PCUnderflow","CreateEmpty","ExitFatal","NotSupported","UnhandledInterrupt","CallErrorAsFatal","ExitReason","Succeed","Fatal","ExitRevert","ExitSucceed","Extrinsic","ExtrinsicEra","ExtrinsicPayload","ExtrinsicSignature","ExtrinsicV4","ExtrinsicPayloadV4","ExtrinsicSignatureV4","ExtrinsicUnknown","ExtrinsicPayloadUnknown","Era","AnySignature","MultiSignature","SignerPayload","EcdsaSignature","Ed25519Signature","Sr25519Signature","FungiblesApi","query_account_balances","FungiblesAccessError","AssetOptions","initalIssuance","permissions","Owner","PermissionsV1","mint","burn","PermissionVersions","PermissionLatest","ActiveGilt","proportion","ActiveGiltsTotal","frozen","ActiveIndex","GiltBid","GRANDPA_V2_V3","grandpa_authorities","proveFinality","roundState","GrandpaApi","current_set_id","AuthorityIndex","AuthorityList","AuthoritySet","currentAuthorities","setId","pendingStandardChanges","pendingForcedChanges","authoritySetChanges","ForkTreePendingChange","roots","bestFinalizedNumber","ForkTreePendingChangeNode","AuthoritySetChange","AuthoritySetChanges","AuthorityWeight","DelayKind","Finalized","Best","DelayKindBest","medianLastFinalized","EncodedFinalityProofs","GrandpaEquivocation","Prevote","Precommit","GrandpaEquivocationProof","equivocation","GrandpaEquivocationValue","roundNumber","GrandpaPrevote","targetHash","targetNumber","GrandpaCommit","precommits","GrandpaPrecommit","GrandpaSignedPrecommit","precommit","GrandpaJustification","commit","votesAncestries","JustificationNotification","KeyOwnerProof","NextAuthority","PendingChange","nextAuthorities","canonHeight","canonHash","delayKind","PendingPause","scheduledAt","PendingResume","Precommits","currentWeight","missing","Prevotes","ReportedRoundStates","best","background","RoundState","totalWeight","thresholdWeight","prevotes","SetId","StoredPendingChange","StoredState","Live","Paused","IdentityFields","Display","Legal","Web","Riot","Email","PgpFingerprint","Image","Twitter","IdentityInfoAdditional","IdentityInfoTo198","additional","legal","web","riot","pgpFingerprint","image","IdentityInfo","twitter","IdentityJudgement","Unknown","FeePaid","Reasonable","KnownGood","OutOfDate","LowQuality","Erroneous","RegistrationJudgement","RegistrationTo198","judgements","Registration","RegistrarIndex","RegistrarInfo","fee","AuthIndex","AuthoritySignature","Heartbeat","networkState","sessionIndex","validatorsLen","HeartbeatTo244","OpaqueMultiaddr","OpaquePeerId","OpaqueNetworkState","peerId","externalAddresses","CallIndex","LotteryConfig","price","generateProof","verifyProof","verifyProofStateless","MmrApi","generate_proof","verify_proof","verify_proof_stateless","generate_batch_proof","mmr_root","verify_batch_proof","verify_batch_proof_stateless","MmrBatchProof","leafIndices","leafCount","MmrEncodableOpaqueLeaf","MmrError","MmrHash","MmrLeafBatchProof","leaves","MmrLeafIndex","MmrLeafProof","leaf","MmrNodeIndex","MmrProof","leafIndex","NftsApi","attribute","collection_attribute","collection_owner","custom_attribute","system_attribute","NftCollectionId","NftItemId","NominationPoolsApi","balance_to_points","pending_rewards","points_to_balance","NpApiError","NpPoolId","DeferredOffenceOf","Kind","OffenceDetails","reporters","Offender","OpaqueTimeSlot","ReportIdOf","Reporter","DifficultyApi","difficulty","TimestampApi","timestamp","ProxyDefinition","proxyType","ProxyType","ProxyAnnouncement","real","callHash","ActiveRecovery","friends","RecoveryConfig","delayPeriod","Period","Priority","SchedulePeriod","SchedulePriority","Scheduled","maybeId","maybePeriodic","ScheduledTo254","TaskAddress","SessionKeys","decode_session_keys","generate_session_keys","BeefyKey","Keys","SessionKeys1","SessionKeys2","SessionKeys3","SessionKeys4","SessionKeys5","SessionKeys6","SessionKeys6B","SessionKeys7","SessionKeys7B","SessionKeys8","SessionKeys8B","SessionKeys9","SessionKeys9B","SessionKeys10","SessionKeys10B","FullIdentification","IdentificationTuple","MembershipProof","session","validatorCount","SessionIndex","ValidatorCount","Bid","BidKind","Deposit","Vouch","SocietyJudgement","SocietyVote","StrikeCount","VouchingStatus","StakingApi","nominations_quota","Points","EraPoints","individual","CompactAssignments","CompactAssignmentsWith16","votes1","votes2","votes3","votes4","votes5","votes6","votes7","votes8","votes9","votes10","votes11","votes12","votes13","votes14","votes15","votes16","CompactAssignmentsWith24","votes17","votes18","votes19","votes20","votes21","votes22","votes23","votes24","CompactAssignmentsTo265","CompactAssignmentsTo257","CompactScore","CompactScoreCompact","ElectionCompute","ElectionPhase","Off","Signed","Unsigned","Emergency","ElectionResult","compute","slotStake","electedStashes","exposures","ElectionScore","ElectionSize","nominators","ElectionStatus","Close","ExtendedBalance","RawSolution","RawSolutionWith16","compact","score","RawSolutionWith24","RawSolutionTo265","ReadySolution","supports","RoundSnapshot","voters","targets","SeatHolder","SignedSubmission","solution","reward","SignedSubmissionTo276","SignedSubmissionOf","SolutionOrSnapshotSize","SolutionSupport","SolutionSupports","Supports","SubmissionIndicesOf","Voter","VoteWeight","ActiveEraInfo","EraIndex","EraRewardPoints","EraRewards","rewards","Exposure","own","others","Forcing","IndividualExposure","KeyType","MomentOf","Nominations","submittedIn","suppressed","NominatorIndex","NominatorIndexCompact","OffchainAccuracy","OffchainAccuracyCompact","PhragmenScore","RewardDestination","Staked","Stash","Controller","Account","RewardPoint","SlashJournalEntry","ownSlash","SlashingSpansTo204","spanIndex","lastStart","SlashingSpans","lastNonzeroSlash","SpanIndex","SpanRecord","slashed","paidOut","StakingLedgerTo223","stash","unlocking","StakingLedgerTo240","lastReward","StakingLedger","claimedRewards","UnappliedSlashOther","UnappliedSlash","validator","payout","UnlockChunk","ValidatorIndex","ValidatorIndexCompact","ValidatorPrefs","ValidatorPrefsWithCommission","commission","ValidatorPrefsWithBlocked","blocked","ValidatorPrefsTo196","validatorPayment","ValidatorPrefsTo145","unstakeThreshold","WeightToFeeCoefficient","coeffInteger","coeffFrac","degree","genSyncSpec","accountNextIndex","addLogFilter","addReservedPeer","chainType","dryRun","health","noErrorLog","localListenAddresses","localPeerId","nodeRoles","peers","properties","removeReservedPeer","reservedPeers","resetLogFilter","syncState","AccountNonceApi","account_nonce","AccountInfo","AccountInfoWithRefCountU8","AccountInfoWithRefCount","AccountInfoWithDualRefCount","consumers","providers","AccountInfoWithProviders","AccountInfoWithTripleRefCount","ApplyExtrinsicResult","ApplyExtrinsicResultPre6","ArithmeticError","BlockLength","BlockWeights","baseBlock","maxBlock","perClass","ChainProperties","ChainType","Development","Local","Custom","ConsumedWeight","DigestOf","DispatchClass","DispatchError","CannotLookup","BadOrigin","Module","ConsumerRemaining","NoProviders","TooManyConsumers","Token","Arithmetic","Transactional","Exhausted","Corruption","Unavailable","DispatchErrorPre6","DispatchErrorPre6First","DispatchErrorModuleU8","DispatchErrorModuleU8a","DispatchErrorModule","DispatchErrorModulePre6","DispatchErrorTo198","DispatchInfo","class","paysFee","DispatchInfoTo190","DispatchInfoTo244","DispatchOutcome","DispatchOutcomePre6","DispatchResult","DispatchResultOf","DispatchResultTo198","EventId","EventIndex","EventRecord","Health","isSyncing","shouldHavePeers","InvalidTransaction","Payment","Future","Stale","BadProof","AncientBirthBlock","ExhaustsResources","BadMandatory","MandatoryDispatch","BadSigner","Key","LastRuntimeUpgradeInfo","specName","NetworkState","listenedAddresses","connectedPeers","notConnectedPeers","averageDownloadPerSec","averageUploadPerSec","peerset","NetworkStatePeerset","messageQueue","nodes","NetworkStatePeersetInfo","connected","reputation","NodeRole","Full","LightClient","UnknownRole","NotConnectedPeer","knownAddresses","latestPingTime","versionString","Peer","enabled","PeerEndpoint","listening","PeerEndpointAddr","localAddr","sendBackAddr","PeerPing","nanos","secs","PeerInfo","roles","protocolVersion","bestHash","bestNumber","PerDispatchClassU32","mandatory","PerDispatchClassWeight","PerDispatchClassWeightsPerClass","Phase","ApplyExtrinsic","Finalization","Initialization","RawOrigin","Root","RefCount","RefCountTo259","SyncState","currentBlock","highestBlock","SystemOrigin","TokenError","TransactionValidityError","Invalid","TransactionalError","UnknownTransaction","NoUnsignedValidator","WeightPerClass","baseExtrinsic","maxExtrinsic","maxTotal","Bounty","proposer","curatorDeposit","bond","BountyIndex","BountyStatus","Proposed","Approved","Funded","CuratorProposed","PendingPayout","BountyStatusActive","curator","updateDue","BountyStatusCuratorProposed","BountyStatusPendingPayout","beneficiary","unlockAt","OpenTip","finder","closes","tips","findersFee","OpenTipTo225","OpenTipFinderTo225","OpenTipTip","TreasuryProposal","Multiplier","TaggedTransactionQueue","validate_transaction","TransactionSource","TransactionValidity","ValidTransaction","requires","provides","longevity","propagate","ClassId","InstanceId","DepositBalance","DepositBalanceOf","ClassDetails","totalDeposit","freeHolding","instances","instanceMetadatas","DestroyWitness","InstanceDetails","ClassMetadata","InstanceMetadata","Multisig","when","depositor","Timepoint","VestingInfo","locked","BlockAttestations","receipt","valid","IncludedBlocks","actualNumber","randomSeed","activeParachains","paraBlocks","MoreAttestations","BridgedBlockHash","BridgedBlockNumber","BridgedHeader","BridgeMessageId","CallOrigin","SourceRoot","TargetAccount","SourceAccount","ChainId","DeliveredMessages","begin","dispatchResults","DispatchFeePayment","InboundLaneData","relayers","lastConfirmedNonce","InboundRelayer","InitializationData","authorityList","isHalted","LaneId","MessageData","MessagesDeliveryProofOf","bridgedHeaderHash","storageProof","MessageKey","laneId","MessageNonce","MessagesProofOf","noncesStart","noncesEnd","OperatingMode","OutboundLaneData","oldestUnprunedNonce","latestReceivedNonce","latestGeneratedNonce","OutboundMessageFee","OutboundPayload","dispatchFeePayment","Parameter","RelayerId","UnrewardedRelayer","relayer","messages","UnrewardedRelayersState","unrewardedRelayer_Entries","messagesInOldestEntry","totalMessages","StatementKind","FundIndex","LastContribution","Never","PreEnding","Ending","FundInfo","verifier","raised","cap","lastContribution","firstPeriod","lastPeriod","trieIndex","TrieIndex","CollectCollationInfo","collect_collation_info","CollationInfo","upwardMessages","horizontalMessages","newValidationCode","processedDownwardMessages","hrmpWatermark","headData","CollationInfoV1","ConfigData","maxIndividual","MessageId","OverweightIndex","PageCounter","PageIndexData","beginUsed","endUsed","overweightCount","finalityV1","best_finalized","KusamaFinalityApi","PolkadotFinalityApi","RococoFinalityApi","WestendFinalityApi","PH_V1_TO_V2","assumed_validation_data","availability_cores","candidate_events","candidate_pending_availability","check_validation_outputs","dmq_contents","inbound_hrmp_channels_contents","on_chain_votes","persisted_validation_data","session_index_for_child","validation_code","validation_code_by_hash","validator_groups","PH_V2_TO_V3","pvfs_require_precheck","session_info","submit_pvf_check_statement","validation_code_hash","PH_V3","disputes","PH_V4","session_executor_params","SlotRange10","SlotRange","ParachainHost","key_ownership_proof","submit_report_dispute_lost","unapplied_slashes","ServiceQuality","DisputeLocation","DisputeResult","DisputeState","validatorsFor","validatorsAgainst","concludedAt","DisputeStatement","Valid","DisputeStatementSet","candidateHash","statements","ExecutorParam","MaxMemoryPages","StackLogicalMax","StackNativeMax","PrecheckingMaxMemory","PvfPrepTimeout","PvfExecTimeout","ExecutorParamsHash","ExecutorParams","ExplicitDisputeStatement","InvalidDisputeStatementKind","MultiDisputeStatementSet","PvfExecTimeoutKind","PvfPrepTimeoutKind","ValidDisputeStatementKind","Explicit","BackingSeconded","BackingValid","ApprovalChecking","HrmpChannel","maxCapacity","maxTotalSize","maxMessageSize","msgCount","totalSize","mqcHead","senderDeposit","recipientDeposit","HrmpChannelId","sender","receiver","HrmpOpenChannelRequest","confirmed","age","ParachainProposal","genesisHead","RegisteredParachainInfo","Bidder","New","IncomingParachain","Unset","Fixed","Deploy","IncomingParachainDeploy","initialHeadData","IncomingParachainFixed","NewBidder","SubId","AuctionIndex","LeasePeriod","LeasePeriodOf","WinningData10","WinningData","WinningDataEntry","WinnersData10","WinnersData","WinnersDataTuple10","WinnersDataTuple","AbridgedCandidateReceipt","parachainIndex","relayParent","collator","povBlockHash","commitments","AbridgedHostConfiguration","maxCodeSize","maxHeadDataSize","maxUpwardQueueCount","maxUpwardQueueSize","maxUpwardMessageSize","maxUpwardMessageNumPerCandidate","hrmpMaxMessageNumPerCandidate","validationUpgradeFrequency","validationUpgradeDelay","AbridgedHrmpChannel","AssignmentId","AssignmentKind","Parachain","Parathread","AttestedCandidate","validityVotes","validatorIndices","AuthorityDiscoveryId","AvailabilityBitfield","AvailabilityBitfieldRecord","bitfield","submittedTt","BackedCandidate","BufferedSessionChange","applyAt","queued","CandidateCommitments","CandidateDescriptor","paraId","collatorId","persistedValidationDataHash","povHash","erasureRoot","paraHead","validationCodeHash","CandidateEvent","CandidateBacked","CandidateIncluded","CandidateTimedOut","CandidateHash","CandidateInfo","CandidatePendingAvailability","core","availabilityVotes","backers","relayParentNumber","backedInNumber","backingGroup","CandidateReceipt","commitmentsHash","GlobalValidationData","CollatorId","CollatorSignature","CommittedCandidateReceipt","CoreAssignment","groupIdx","CoreIndex","CoreOccupied","CoreState","Occupied","Free","DisputeProof","timeSlot","validatorIndex","validatorId","DisputesTimeSlot","DoubleVoteReport","signingContext","DownwardMessage","GroupIndex","GroupRotationInfo","sessionStartBlock","groupRotationFrequency","GlobalValidationSchedule","HeadData","HostConfiguration","maxPovSize","maxDownwardMessageSize","preferredDispatchableUpwardMessagesStepWeight","hrmpMaxParachainOutboundChannels","hrmpMaxParathreadOutboundChannels","hrmpOpenRequestTtl","hrmpSenderDeposit","hrmpRecipientDeposit","hrmpChannelMaxCapacity","hrmpChannelMaxTotalSize","hrmpMaxParachainInboundChannels","hrmpMaxParathreadInboundChannels","hrmpChannelMaxMessageSize","codeRetentionPeriod","parathreadCores","parathreadRetries","chainAvailabilityPeriod","threadAvailabilityPeriod","schedulingLookahead","maxValidatorsPerCore","maxValidators","disputePeriod","disputePostConclusionAcceptancePeriod","disputeMaxSpamSlots","disputeConclusionByTimeOutPeriod","noShowSlots","nDelayTranches","zerothDelayTrancheWidth","neededApprovals","relayVrfModuloSamples","InboundDownwardMessage","pubSentAt","pubMsg","InboundHrmpMessage","sentAt","InboundHrmpMessages","LocalValidationData","parentHead","codeUpgradeAllowed","MessageIngestionType","downwardMessages","MessageQueueChain","OccupiedCore","nextUpOnAvailable","occupiedSince","timeOutAt","nextUpOnTimeOut","availability","groupResponsible","candidateDescriptor","OccupiedCoreAssumption","OutboundHrmpMessage","recipient","PendingSlashes","slashKeys","ParachainDispatchOrigin","ParachainInherentData","validationData","relayChainState","ParachainsInherentData","bitfields","backedCandidates","parentHeader","ParaGenesisArgs","validationCode","parachain","ParaId","ParaInfo","manager","ParaLifecycle","ParaPastCodeMeta","upgradeTimes","lastPruned","ParaScheduling","ParathreadClaim","ParathreadClaimQueue","nextCoreOffset","ParathreadEntry","claim","retries","ParaValidatorIndex","PersistedValidationData","relayParentStorageRoot","PvfCheckStatement","accept","subject","QueuedParathread","coreOffset","RelayBlockNumber","RelayChainBlockNumber","RelayHash","RelayChainHash","Remark","ReplacementTimes","expectedAt","activatedAt","Retriable","WithRetries","ScheduledCore","Scheduling","ScrapedOnChainVotes","backingValidatorsPerCandidate","SessionInfo","activeValidatorIndices","discoveryKeys","assignmentKeys","validatorGroups","nCores","OldV1SessionInfo","SessionInfoValidatorGroup","SignedAvailabilityBitfield","SignedAvailabilityBitfields","SigningContext","SlashingOffenceKind","Statement","TransientValidationData","dmqLength","UpgradeGoAhead","UpgradeRestriction","UpwardMessage","ValidationFunctionParams","relayChainHeight","ValidationCode","ValidationCodeHash","ValidationData","persisted","transient","ValidationDataType","ValidatorSignature","ValidityAttestation","Implicit","MessagingStateSnapshot","relayDispatchQueueSize","egressChannels","MessagingStateSnapshotEgressEntry","SystemInherentData","VecInboundHrmpMessage","Approvals","AccountStatus","validity","freeBalance","lockedBalance","vat","AccountValidity","XCM_MAPPINGS","mapXcmTypes","BodyId","Unit","Named","Executive","Technical","Legislative","Judicial","BodyPart","Voice","Fraction","nom","denom","AtLeastProportion","MoreThanProportion","InteriorMultiLocation","NetworkId","Any","Polkadot","Kusama","XcmOrigin","XcmpMessageFormat","XcmAssetId","Concrete","Abstract","InboundStatus","OutboundStatus","MultiAssets","FungibilityV0","WildFungibilityV0","AssetInstanceV0","Undefined","Index8","Index16","Index32","Index64","Index128","Array4","Array8","Array16","Array32","Blob","JunctionV0","AccountIndex64","AccountKey20","PalletInstance","GeneralIndex","GeneralKey","OnlyChild","Plurality","part","MultiAssetV0","All","AllFungible","AllNonFungible","AllAbstractFungible","AllAbstractNonFungible","AllConcreteFungible","AllConcreteNonFungible","AbstractFungible","AbstractNonFungible","ConcreteFungible","ConcreteNonFungible","MultiLocationV0","Here","X4","X5","X6","X7","X8","OriginKindV0","ResponseV0","Assets","XcmV0","WithdrawAsset","assets","ReserveAssetDeposit","ReceiveTeleportedAsset","QueryResponse","queryId","TransferAsset","TransferReserveAsset","Transact","originType","requireWeightAtMost","HrmpNewChannelOpenRequest","HrmpChannelAccepted","HrmpChannelClosing","initiator","RelayedFrom","XcmErrorV0","Overflow","Unimplemented","UnhandledXcmVersion","UnhandledXcmMessage","UnhandledEffect","EscalationOfPrivilege","UntrustedReserveLocation","UntrustedTeleportLocation","DestinationBufferOverflow","SendFailed","CannotReachDestination","MultiLocationFull","FailedToDecode","ExceedsMaxMessageSize","FailedToTransactAsset","WeightLimitReached","Wildcard","TooMuchWeightRequired","NotHoldingFees","WeightNotComputable","Barrier","NotWithdrawable","LocationCannotHold","TooExpensive","AssetNotFound","RecursionLimitReached","XcmOrderV0","DepositAsset","DepositReserveAsset","ExchangeAsset","give","receive","InitiateReserveWithdraw","reserve","InitiateTeleport","QueryHolding","BuyExecution","fees","debt","haltOnError","xcm","AssetInstanceV1","FungibilityV1","Fungible","NonFungible","JunctionV1","JunctionsV1","MultiAssetsV1","MultiAssetV1","fungibility","MultiAssetFilterV1","Definite","Wild","MultiLocationV1","parents","interior","OriginKindV1","ResponseV1","WildFungibilityV1","WildMultiAssetV1","AllOf","XcmV1","XcmErrorV1","DestinationUnsupported","XcmOrderV1","Noop","maxAssets","instructions","AssetInstanceV2","FungibilityV2","JunctionV2","JunctionsV2","MultiAssetsV2","MultiAssetV2","MultiAssetFilterV2","MultiLocationV2","OriginKindV2","WildFungibilityV2","ResponseV2","ExecutionResult","ResponseV2Error","ResponseV2Result","WeightLimitV2","Unlimited","Limited","InstructionV2","ReserveAssetDeposited","maxWeight","ClearOrigin","DescendOrigin","ReportError","maxResponseWeight","query_id","maxResponse_Weight","weightLimit","RefundSurplus","SetErrorHandler","SetAppendix","ClearError","ClaimAsset","ticket","Trap","WildMultiAssetV2","XcmV2","XcmErrorV2","MultiLocationNotInvertible","Transport","Unroutable","UnknownWeightRequired","UnknownClaim","InvalidLocation","XcmOrderV2","DoubleEncodedCall","XcmOriginKind","Outcome","Complete","Incomplete","QueryId","QueryStatus","Pending","responder","maybeNotify","Ready","at","QueueConfigData","suspendThreshold","dropThreshold","resumeThreshold","weightRestrictDecay","VersionMigrationStage","MigrateSupportedVersion","MigrateVersionNotifiers","NotifyCurrentTargets","MigrateAndNotifyOldTargets","VersionedMultiAsset","VersionedMultiAssets","VersionedMultiLocation","VersionedResponse","VersionedXcm","XcmVersion","ContractCryptoHasher","ContractDiscriminant","ContractLayoutArray","cellsPerElem","layout","ContractLayoutCell","ty","ContractLayoutEnum","dispatchKey","ContractLayoutHash","strategy","ContractLayoutHashingStrategy","postfix","ContractLayoutKey","ContractLayoutStruct","ContractLayoutStructField","ContractStorageLayout","Cell","ContractConstructorSpecV0","selector","ContractConstructorSpecV1","ContractConstructorSpecV2","ContractConstructorSpecV3","payable","ContractConstructorSpecV4","returnType","ContractContractSpecV0","constructors","ContractContractSpecV1","ContractContractSpecV2","ContractContractSpecV3","ContractContractSpecV4","environment","ContractDisplayName","ContractEventParamSpecV0","indexed","ContractEventParamSpecV2","ContractEventSpecV0","ContractEventSpecV1","ContractEventSpecV2","ContractMessageParamSpecV0","ContractMessageParamSpecV2","ContractMessageSpecV0","mutates","ContractMessageSpecV1","ContractMessageSpecV2","ContractMessageSpecV3","ContractSelector","ContractTypeSpec","ContractConstructorSpecLatest","ContractEventSpecLatest","ContractEventParamSpecLatest","ContractMessageParamSpecLatest","ContractMessageSpecLatest","ContractMetadataLatest","ContractProjectInfo","contract","ContractMetadataV0","metadataVersion","spec","ContractMetadataV1","ContractMetadataV2","ContractMetadataV3","ContractMetadataV4","ContractMetadata","ContractProjectV0","ContractProject","ContractProjectContract","authors","repository","homepage","license","ContractProjectSource","wasmHash","language","compiler","ContractEnvironmentV4","hashType","ethMethodsV4","account_basic","account_code_at","author","chain_id","current_all","current_block","current_receipts","current_transaction_statuses","elasticity","extrinsic_filter","gas_price","storage_at","aliasSection","peerCount","clientVersion","sha3","chainId","coinbase","estimateGas","feeHistory","getBalance","getBlockByHash","getBlockByNumber","getBlockTransactionCountByHash","getBlockTransactionCountByNumber","getCode","getFilterChanges","getFilterLogs","getLogs","getProof","getStorageAt","getTransactionByBlockHashAndIndex","getTransactionByBlockNumberAndIndex","getTransactionByHash","getTransactionCount","getTransactionReceipt","getUncleByBlockHashAndIndex","getUncleByBlockNumberAndIndex","getUncleCountByBlockHash","getUncleCountByBlockNumber","getWork","hashrate","maxPriorityFeePerGas","mining","newBlockFilter","newFilter","newPendingTransactionFilter","sendRawTransaction","sendTransaction","submitHashrate","submitWork","syncing","uninstallFilter","ConvertTransactionRuntimeApi","convert_transaction","DebugRuntimeApi","trace_block","trace_transaction","EthereumRuntimeRPCApi","BlockV0","transactions","ommers","LegacyTransaction","TransactionV0","BlockV1","EIP2930Transaction","accessList","oddYParity","TransactionV1","Legacy","EIP2930","BlockV2","EIP1559Transaction","maxFeePerGas","TransactionV2","EIP1559","EthereumAccountId","EthereumAddress","EthereumLookupSource","EthereumSignature","EthAccessListItem","slots","EthAccessList","EthAccount","storageHash","accountProof","EthAddress","EthBlock","EthHeader","ommersHash","transactionsRoot","receiptsRoot","logsBloom","gasUsed","extraData","mixMash","EthRichBlock","blockSize","sha3Uncles","miner","totalDifficulty","sealFields","uncles","EthBloom","EthCallRequest","EthFeeHistory","oldestBlock","baseFeePerGas","gasUsedRatio","EthFilter","fromBlock","toBlock","EthFilterAddress","Single","Multiple","EthFilterChanges","Logs","Hashes","Empty","EthFilterTopic","EthFilterTopicEntry","EthFilterTopicInner","EthRichHeader","EthLog","transactionHash","transactionIndex","logIndex","transactionLogIndex","EthReceipt","cumulativeGasUsed","contractAddress","statusCode","EthReceiptV0","EthReceiptV3","EthStorageProof","EthSubKind","EthSubParams","EthSubResult","Log","TransactionHash","EthSyncInfo","warpChunksAmount","warpChunksProcessed","EthSyncStatus","Info","EthTransaction","creates","standardV","transactionType","EthTransactionSignature","EthTransactionAction","Create","EthTransactionCondition","EthTransactionRequest","EthTransactionStatus","EthWork","powHash","seedHash","AuthorFilterAPI","can_author","NimbusApi","OracleApi","get_all_values","get_value","TokensApi","query_existential_deposit","RpcMethods","hasKey","hasSessionKeys","insertKey","pendingExtrinsics","removeExtrinsic","rotateKeys","submitAndWatchExtrinsic","submitExtrinsic","ExtrinsicOrHash","ExtrinsicStatus","Broadcast","InBlock","Retracted","FinalityTimeout","Usurped","Dropped","getBlock","getBlockHash","getHeader","subscribeAllHeads","subscribeFinalizedHeads","subscribeNewHeads","BlockHash","getKeys","getKeysPaged","getStorageEntries","getStorageHash","getStorageSize","PrefixedStorageKey","localStorageGet","localStorageSet","OffchainWorkerApi","offchain_worker","StorageKind","PERSISTENT","LOCAL","V1_TO_V4_SHARED_PAY","query_fee_details","V1_TO_V3_SHARED_CALL","query_call_fee_details","V2_TO_V4_SHARED_PAY","query_info","V2_V3_SHARED_CALL","query_call_info","V3_SHARED_PAY_CALL","query_length_to_fee","query_weight_to_fee","queryFeeDetails","queryInfo","TransactionPaymentApi","TransactionPaymentCallApi","CALL","FeeDetails","inclusionFee","InclusionFee","baseFee","lenFee","adjustedWeightFee","RuntimeDispatchInfo","partialFee","RuntimeDispatchInfoV1","RuntimeDispatchInfoV2","getChildKeys","getChildReadProof","getChildStorage","getChildStorageHash","getChildStorageSize","getMetadata","getPairs","getReadProof","getRuntimeVersion","queryStorage","queryStorageAt","subscribeRuntimeVersion","subscribeStorage","traceBlock","trieMigrationStatus","ApiId","BlockTrace","tracingTargets","storageKeys","spans","BlockTraceEvent","parentId","BlockTraceEventData","stringValues","BlockTraceSpan","KeyValueOption","MigrationStatusResult","topRemainingToMigrate","childRemainingToMigrate","ReadProof","RuntimeVersionApi","RuntimeVersion","implName","authoringVersion","implVersion","stateVersion","RuntimeVersionPre4","RuntimeVersionPre3","RuntimeVersionPartial","SpecVersion","StorageChangeSet","changes","TraceBlockResponse","TraceError","lazyVariants","asVariant","convert","objectNameToCamel","objectNameToString","filterCallsSome","createCallFunction","variant","sectionName","sectionIndex","callMetadata","expectedArgs","funcName","extrinsicFn","tx","isTx","createUnchecked","decorateExtrinsics","filtered","variantToMeta","decorateErrors","errorMod","filterEventsSome","decorateEvents","eventRecord","decorateConstants","_version","constant","codec","trimDocs","firstEmpty","findIndex","toCallsOnly","flattenUniq","extractSubSingle","extractTypes","extractSubArray","unhandled","mapping","extractFieldTypes","getUniqTypes","hasType","validateTypes","getPalletNames","createStorageHasher","createStorageType","entryType","isDoubleMap","asDoubleMap","toV10","convertModule","toV11","toV12","toV13","v12","typesAlias","Approval","ApprovalKey","babe","EquivocationProof","balances","Status","beefy","contracts","electionProviderMultiPhase","ethereum","Receipt","Transaction","TransactionStatus","evm","Vicinity","grandpa","Equivocation","Judgement","inclusion","paraDisputes","paraInclusion","paraScheduler","paraShared","parachains","parasDisputes","parasInclusion","parasScheduler","parasShared","proposeParachain","proxy","Announcement","society","staking","treasury","xcmPallet","BOXES","compatType","specs","makeTupleType","makeVariantType","modName","variantType","setTypeOverride","sectionTypes","aliased","orig","dst","convertCalls","convertConstants","_ref8","convertErrors","_sectionTypes","_ref9","convertEvents","createMapEntry","_ref11","isLinked","convertStorage","_ref12","_ref13","plain","nm","asNMap","createPallet","_ref15","_knownTypes$typesAlia","getAliasTypes","toV14","v13","metaVersion","compatTypes","register","registerOriginCaller","_ref14","convertExtrinsic","toV15","v14","_v14$lookup$paramType","unchecked","paramTypes","SpRuntimeUncheckedExtrinsic","FrameSystemEventRecord","toLatest","v15","_metaVersion","MAGIC_NUMBER","MagicNumber","U32","MetadataVersioned","magicNumber","__internal__converted","__internal__assertVersion","__internal__getVersion","fromPrev","asCurr","__internal__metadata","asPrev","asCallsOnly","asLatest","asV9","asV10","asV11","asV12","asV13","asV14","asV15","EMPTY_METADATA","VERSION_IDX","stringIdentity","INFO_WRAP","encodeWithParams","paramsNotation","encodeTypeDef","encodeSubTypes","asEnum","extra","encoders","_typeDef","encodeType","withTypeString","TYPE_UNWRAP","PRIMITIVE_ALIAS","Char","Str","PATHS_ALIAS","splitNamespace","PATHS_SET","BITVEC_NS_LSB","BITVEC_NS","WRAPPERS","RESERVED","PATH_RM_INDEX_1","sanitizeDocs","matchParts","suba","subb","extractNameFlat","portable","isInternal","camels","lowers","instanceType","extractName","rewriteDupes","rewrite","extractTypeInfo","nameInfo","extracted","lookups","dedup","original","allSame","nextDupeMatches","anyDiff","paramIdx","aIndex","sameCount","adjusted","isPrimitive","asPrimitive","flat","removeDupeNames","PortableRegistry","isContract","__internal__typeDefs","__internal__alias","hasParams","extractAliases","__internal__lookups","__internal__params","__internal__types","addrParam","sigParam","siAddress","nsSignature","nsAccountId","isMultiAddress","idParam","registerTypes","lookupId","__internal__getLookupId","__internal__extract","lookupNameRoot","nameField","nameOrig","__internal__createSiDef","namespace","aliasType","isComposite","asComposite","getAliasPath","__internal__extractAliasPath","__internal__extractArray","__internal__extractBitSequence","asBitSequence","__internal__extractCompact","asCompact","__internal__extractComposite","__internal__extractHistoric","asHistoricMetaCompat","__internal__extractPrimitive","__internal__extractSequence","asSequence","__internal__extractTuple","__internal__extractVariant","assertUnreachable","bitOrder","bitStore","pathFirst","pathLast","__internal__extractCompositeSet","__internal__extractFields","isStruct","isTuple","__internal__extractFieldsAlias","isFromSi","typeStr","specialVariant","_ref16","__internal__extractVariantEnum","_ref17","bnIndex","DEFAULT_FIRST_CALL_IDX","sortDecimalStrings","valueToString","getFieldArgs","clearRecord","getVariantStringIdx","TypeRegistry","__internal__classes","__internal__definitions","__internal__firstCallIndex","__internal__hasher","__internal__knownTypes","__internal__metadataVersion","__internal__signedExtensions","__internal__unknownTypes","__internal__metadataCalls","__internal__metadataErrors","__internal__metadataEvents","__internal__moduleMap","__internal__registerObject","__internal__registerLookup","setLookup","weightv2","createType","__internal__knownDefaults","baseTypes","__internal__knownDefaultsEntries","__internal__knownDefinitions","definitions","allKnown","_this$__internal__cha","__internal__chainProperties","allDecimals","chainIsEthereum","_this$__internal__cha2","_this$__internal__cha3","_this$__internal__cha4","allTokens","__internal__lookup","unknownTypes","clearCache","createClass","eventIndex","withUnknown","knownTypeDef","BaseType","constructTypeClass","getChainProperties","getDefinition","getModuleInstances","moduleName","_this$__internal__kno","_this$__internal__kno2","_this$__internal__kno3","_this$__internal__kno4","_this$__internal__kno5","typesBundle","getOrThrow","__internal__userExtensions","hasClass","hasDef","arg1","arg2","setChainProperties","setHasher","setKnownTypes","setMetadata","noInitWarn","allCalls","palletIdx","injectExtrinsics","injectErrors","injectEvents","defSection","defMethod","setSignedExtensions","extractProperties","unknown","findUnknownExtensions","typesChain","sharedTypes","AnchorData","anchoredBlock","docRoot","PreCommitData","expirationBlock","signingRoot","MultiAccountData","signatories","DepositNonce","ResourceId","RegistryId","TokenId","registryId","tokenId","AssetInfo","MintInfo","anchorId","proofs","staticHashes","Proof","leafHash","sortedHashes","ProofMint","hashes","property","RegistryInfo","ownerCanBurn","standaloneTypes","versioned","minmax","addrIndicesTypes","addrAccountIdTypes","NonTransfer","Governance","Staking","UnusedSudoBalances","CancelProxy","Auction","typesSpec","centrifugeChain","nodeTemplate","shell","upgrades","NET_EXTRA","versions","withNames","chainName","filterVersions","getSpecRpc","_knownTypes$typesBund19","_knownTypes$typesBund20","_knownTypes$typesBund21","_knownTypes$typesBund22","_knownTypes$typesBund23","_knownTypes$typesBund24","ObjectUnsubscribedError","Subject","AnonymousSubject","_throwIfClosed","currentObservers","observers","thrownError","_checkFinalizedStatuses","_innerSubscribe","BehaviorSubject","objectProto","argsArgArrayOrObject","first_1","mapOneOrManyArgs","callOrApply","combineLatest","popResultSelector","observables","valueTransform","maybeSchedule","remainingFirstValues","hasFirstValue","combineLatestInit","createObject","execute","tap","tapObserver","isUnsub","finalize","accumulator","hasSeed","emitOnNext","emitBeforeComplete","hasState","scanInternals","arrReducer","lazyDeriveSection","defaultGetId","memoize","getInstanceId","cache","stringParams","instanceId","unmemoize","_cache$instanceId","catchError","handledResult","innerSub","syncUnsub","defaultCompare","dateTimestampProvider","_bufferSize","_windowTime","_timestampProvider","_infiniteTimeWindow","ReplaySubject","_buffer","_trimBuffer","adjustedBufferSize","refCount","_refCount","refCounter","sharedConnection","_connection","conn","subjectFactory","ConnectableObservable","getSubject","_subject","subject_1","_teardown","higherOrderRefCount","DEFAULT_CONFIG","connector","subscribable","publishReplay","bufferSize","windowTime","selectorOrScheduler","timestampProvider","subjectOrSubjectFactory","multicast","resolved","Action","intervalProvider","AsyncAction","recycleAsyncId","requestAsyncId","_id","flush","_scheduler","_execute","_delay","errorValue","errored","actions","nextHandle","activeHandles","findAndClearHandle","setImmediate","clearImmediate","immediateProvider","AsapAction","_scheduled","schedulerActionCtor","Scheduler","asapScheduler","AsapScheduler","_active","flushId","SchedulerAction","AsyncScheduler","refCountDelay","CMP","ERR","NOOP","drr","skipChange","skipTimeout","source$","keySelector","comparator","previousKey","currentKey","observer","api","accountIndex","derive","indexToId","_flags","_api$query$council","_api$query$technicalC","_api$query$society","_api$query$sudo","elections","members","council","technicalCommittee","sudo","queryMulti","resultIndex","electionsMembers","councilMembers","technicalCommitteeMembers","societyMembers","sudoKey","addrStr","isIncluded","isCouncil","isSociety","isSudo","isTechCommittee","parseFlags","idAndIndex","idToIndex","firstObservable","firstMemo","UNDEF_HEX","dataAsString","_identity","_api$query$identity","identityOf","superOf","identityOfOpt","superOfOpt","getParent","topDisplay","displayParent","pgp","extractIdentity","hasIdentity","hasIdentityMulti","accountIds","_api$query$identity2","multi","identities","supers","indexes","mergeMap","concurrent","onBeforeNext","expand","innerSubScheduler","additionalFinalizer","outerNext","doInnerSub","innerComplete","bufferedValue","mergeInternals","concatAll","startWith","indicesCache","indices","idOpt","queryAccounts","optResult","retrieveNick","_api$query$nicks","nameOf","consts","nickname","withSection","getInstance","callMethod","_proposalsFrom","proposals","proposalOf","voting","proposal","hasProposals","proposalHashes","proposalCount","collectiveMembers","collectiveHasProposals","collectiveProposal","collectiveProposalCount","collectiveProposalHashes","collectiveProposals","collectivePrime","getQueryInterface","voterList","_getIds","_ids","listBags","bags","sorted","bag","bagLower","bagUpper","orderBags","bagsList","listNodes","getExpanded","nextTick","onExec","traverseLinks","createCmp","bnMax","bnMin","VESTING_ID","calcShared","locks","allLocked","lockedBreakdown","vestingLocked","notAll","calcLocked","availableBalance","calcBalances","vesting","allLocks","namedReserves","_vesting","isVesting","vestedBalances","vestedBalance","vestingTotal","vestedClaimable","endBlock","vested","calcVesting","accountNonce","queryOld","optVesting","vestingNew","isNonNullable","nullable","createCalls","queryCurrent","_api$query$vesting","balanceInstances","lockEmpty","lockQueries","_api$derive$m","_api$query$m","customLocks","reserveEmpty","reserveQueries","_api$query$m2","reserves","opt","offsetLock","offsetReserve","_api$query$system","_api$query$balances","system","zeroBalance","reservedBalance","frozenFee","frozenMisc","votingBalance","queryBalancesFree","queryNonceOnly","queryBalancesAccount","customAccount","extract","querySystemAccount","infoOrTuple","nonDefaultBalances","_api$query$balances2","votingBalances","addresses","filterBountiesProposals","allProposals","bountyTxBase","bounties","bountyProposalCalls","approveBounty","closeBounty","proposeCurator","unassignCurator","bountyCall","parseResult","maybeBounties","maybeDescriptions","bountyProposals","bounty","bountyProposal","bountyBase","bountyCount","bountyDescriptions","isCompact","unwrapBlockNumber","hdr","createBlockNumberDerive","getAuthorDetails","queryAt","_queryAt$session","loggedAuthor","isConsensus","asConsensus","isPreRuntime","asPreRuntime","_queryAt$authorMappin","_queryAt$parachainSta","_queryAt$session2","nextKeys","loggedHex","selectedCandidates","nimbus","getAuthorDetailsWithAt","bestNumberFinalized","bestNumberLag","citem","pitem","sitem","isSeal","engine","asSeal","signedBlock","SignedBlockBase","__internal__author","__internal__events","__internal__extrinsics","dispatchError","dispatchInfo","isApplyExtrinsic","asApplyExtrinsic","createSignedBlockExtended","createHeaderExtended","HeaderBase","subscribeFinalizedBlocks","_getHeaderRange","startHash","endHash","prevHash","subscribeNewBlocks","queryConstants","callBaseFee","contractFee","creationFee","transactionBaseFee","transactionByteFee","transferFee","rentByteFee","rentDepositOffset","surchargeReward","isVoter","retrieveStakeOf","retrieveVoteOf","stakes","voter","staker","retrievePrev","retrieveCurrent","votesOf","childKey","optInfo","fundIndex","createChildKey","arrayFlatten","arrays","extractContributed","_events$createdAtHash","eventParaId","added","PAGE_SIZE_K","_getUpdates","addedDelta","removedDelta","_getAll","_events$createdAtHash2","_eventTriggerAll","childstate","startKey","keyArr","_getKeysPaged","contributions","crowdloan","contributorsMap","contributorsHex","_contributions","_getValues","_watchOwnChanges","childkey","ownContributions","latest","stringToHex","bnSqrt","x0","compareRationals","d1","d2","q1","q2","calcPassing","sqrtElectorate","isSimpleMajority","votedAye","votedNay","votedTotal","sqrtVoters","isSuperMajorityApprove","calcPassingOther","calcVotes","referendum","allAye","allNay","derived","voteCountAye","voteCountNay","calcVotesCurrent","isDefault","counted","isPassing","getImageHashBounded","isLegacy","asLegacy","hash_","isLookup","asLookup","isInline","asInline","getImageHash","DEMOCRACY_ID","queryScheduler","democracy","referendumsFinished","agenda","blockNumbers","schedulerEntries","agendas","imageHash","isBounded","isHash","asHash","asValue","preimages","infos","images","dispatchQueue","_api$query$scheduler","dispatches","dispatchIndex","queryQueue","LOCKUPS","parseLock","referendumId","accountVote","asStandard","referendumEnd","isFinished","voteLockingPeriod","enactmentPeriod","parseEnd","asFinished","isDelegated","votingOf","isDirect","referendumInfoOf","referendums","isStandard","directVote","directLocks","asDirect","isDelegating","available","delegateLocks","asDelegating","nextExternal","_api$query$democracy","nextOpt","preimage","withImage","constructProposal","getDemocracyImages","bounded","imageOpt","isDemocracyPreimage","isMissing","asAvailable","parseDemocracy","getImages","bytesType","preimageFor","statusFor","optStatus","statuses","isRequested","asRequested","asUnrequested","optBytes","isUnrequested","parseImage","optDepositors","_optDepositors$index","proposalIndex","depositors","isNewDepositors","seconds","publicProps","depositOf","referendumIds","lowestUnbaked","referendumCount","referendumsActive","_referendumsVotes","referendumsInfo","votesPrev","votersFor","votesCurr","allVoting","mapped","directVotes","extractVotes","toDelegator","_referendumVotes","_referendumInfo","unwrapped","isOldInfo","isOngoing","asOngoing","getStatus","totalIssuance","getAccountTuple","isSeatHolder","getCandidate","isCandidateTuple","sortAccounts","balanceA","balanceB","getModules","candidates","runnersUp","queryAll","queryCouncil","candidacyBond","desiredRunnersUp","desiredSeats","desiredMembers","termDuration","votingBond","votingBondBase","votingBondFactor","getConstants","mapResult","heartbeats","numBlocks","blockCount","hasMessage","isOnline","receivedHeartbeats","_api$query$imOnline","imOnline","overview","currentIndex","authoredBlocks","didUpdateToBool","didUpdate","parseActive","retriable","isWithRetries","isRetriable","asWithRetries","parseCollators","collatorQueue","retryQueue","selectedThreads","pendingSwap","heads","relayDispatchQueue","pendingSwapId","retryCollators","selectedCollators","relayDispatchQueueSizes","pendingSwaps","_api$query$registrar","paraIds","activeEra","activeEraStart","currentEra","activeOpt","queryStaking","querySession","_api$consts","_api$consts$babe","_api$consts2","_api$consts2$staking","sessionLength","epochDuration","sessionsPerEra","eraLength","isEpoch","withProgressField","progress","_api$query$staking","erasStartSessionIndex","currentSlot","genesisSlot","optStartIndex","queryBabe","epochOrGenesisStartSlot","activeEraStartSessionIndex","epochStartSlot","sessionProgress","eraProgress","createDerive","queryAura","suspended","isSuspended","getPrev","bid","getCurr","bids","founder","defender","maxMembers","hasDefender","member","_members","payouts","defenderVotes","suspendedMembers","isDefenderVoter","approve","strikes","vouching","_membersCurr","_membersPrev","QUERY_OPTS","withDestination","withLedger","withNominations","withPrefs","calculateUnlocking","stakingLedger","sessionInfo","eraString","remainingEras","redeemableSum","keysMulti","queries","redeemable","currentPoints","erasRewardPoints","DEFAULT_FLAGS","withController","withExposure","electedInfo","nextElected","combineAccounts","deriveNoopCache","del","CHACHE_EXPIRY","deriveCache","getEraCache","CACHE_KEY","withActive","cacheKey","getEraMultiCache","eras","setEraCache","setEraMultiCache","filterCachedEras","arrayChunk","chunkSize","outputSize","keyStart","partial","wrapCache","setDeriveCache","ERA_CHUNK_SIZE","filterEras","erasHistoricApply","erasHistoric","erasHistoricApplyAccount","singleEra","combineEras","chunked","chunkEras","_eraExposure","erasStakersClipped","stakers","exposure","nominatorId","mapStakers","eraExposure","_erasExposure","erasExposure","historyDepth","activeEraOpt","lastEra","mapValidators","_erasPoints","remaining","eraPoints","mapPoints","erasPoints","_eraPrefs","erasValidatorPrefs","prefs","mapPrefs","eraPrefs","_erasPrefs","erasPrefs","_erasRewards","erasValidatorReward","optRewards","eraReward","mapRewards","erasRewards","_eraSlashes","nominatorSlashInEra","validatorSlashInEra","noms","vals","optBalance","optRes","mapSlashes","eraSlashes","_erasSlashes","erasSlashes","stashId","stashIds","queuedKeys","_api$consts$session","sessionIds","currentId","nextSessionIds","extractsIds","_ownExposures","_withActive","erasStakers","clp","exp","clipped","ownExposure","ownExposures","_ownSlashes","ownSlashes","getBatch","emptyNoms","emptyRewa","emptyExpo","emptyPrefs","bonded","payee","getStashInfo","controllerIdOpt","nominatorsOpt","rewardDestination","validatorPrefs","optIds","emptyLed","ledger","optLedgers","getLedgers","stakingLedgerOpts","stakingLedgerOpt","controllerId","parseDetails","_stakerExposures","stakerIds","stakerId","allNominators","allValidators","isValidator","nominating","stakerExposures","stakerExposure","_stakerPoints","stakerPoints","_stakerPrefs","stakerPrefs","filterRewards","valInfo","queryValidators","rm","valLedger","removeClaimed","_stakerRewardsEras","_stakerRewards","erasResult","allRewards","eraValidators","allValPoints","allValPrefs","_allValPrefs$validato","_exposure$total","valPoints","valComm","expTotal","avail","valCut","stakerExp","parseRewards","stashValidators","perStash","uniq","queriedVals","stakerRewards","stakerRewardsMultiEras","stakerRewardsMulti","_stakerSlashes","slashes","stakerSlashes","stashes","onBondedEvent","waitingInfo","elected","waiting","approvalIds","proposalIds","allIds","councilProposals","councilTreasury","approveProposal","rejectProposal","isApproval","approvalId","retrieveProposals","FALLBACK_MAX_HASH_COUNT","FALLBACK_PERIOD","MAX_FINALITY_LAG","MORTAL_PERIOD","latestNonce","nextNonce","_api$rpc$system","signingHeader","finalized","signingInfo","_instanceId","_api$consts$system","_api$consts$system$bl","_api$consts$timestamp","mortalLength","blockHashCount","expectedBlockTime","minimumPeriod","alliance","membership","checks","allianceMotion","withDetect","injectFunctions","derives","filterKeys","filterInstances","defs","EMPTY_META","logErrorMessage","isTreatAsHex","RpcCore","userRpc","__internal__storageCache","__internal__storageCacheHits","__internal__storageCacheSize","sections","__internal__instanceId","__internal__isPedantic","__internal__registryDefault","sectionNames","rpcDefinitions","addUserInterfaces","cacheHits","cacheSize","setRegistrySwap","registrySwap","__internal__getBlockRegistry","setResolveBlockHash","resolveBlockHash","__internal__getBlockHash","scount","mcount","_createMethodSubscribe","_createMethodSend","_memomize","memoOpts","_formatResult","isScale","_formatOutput","rpcName","hashIndex","callWithRegistry","_this$__internal__get","blockId","_formatParams","isDelayed","_memoized","_memoized2","_createSubscriber","errorHandler","paramsJson","subName","updateType","subMethod","unsubMethod","unsubName","subscriptionPromise","_memoized3","_memoized4","subscriptionId","reqCount","_formatStorageData","_formatStorageSet","jsonSet","_newType","withCache","_formatStorageSetEntry","entryIndex","hexKey","isNotFound","entryNum","P64_1","P64_2","P64_3","P64_4","P64_5","_12n","_16n","_18n","_27n","_29n","_31n","_33n","_64n","rotl","fromU8a","bigints","xxhash64","initSeed","u8asize","v2","v3","v4","limit","adjustV","h64","xxhashAsU8a","DEFAULT_FN","HASHERS","NO_RAW_ARGS","filterDefined","assertArgs","createKeyRawParts","itemFn","createKeyInspect","createKeyRaw","createKey","createWithMeta","storageFn","skipHashing","createStorageFn","createStorageInspect","createFunction","iterKey","iterFn","extendHeadMeta","keysVec","extendPrefixedMap","keyPrefix","findSiPrimitive","_prim","prim","isHistoricMetaCompat","findSiType","isSequence","createRuntimeFunction","_findSiType","createSubstrateFn","substrate","changesTrieConfig","childStorageKeyPrefix","extrinsicIndex","heapPages","VERSION_NAME","VERSION_KEY","VERSION_DOCS","decorateStorage","_prefix","palletVersion","stringUpperFirst","defaultErrorFactory","predicate","hasDefaultValue","seen","hasValue","defaultIfEmpty","errorFactory","isKeyringPair","filterEvents","allEvents","txIndex","isInBlock","allHashes","recordIdentity","filterAndApply","onFound","getDispatchError","getDispatchInfo","SubmittableResult","internalError","extractError","extractInfo","isCompleted","isError","isFinalized","isDropped","isFinalityTimeout","isInvalid","isUsurped","isWarning","isRetracted","filterRecords","findRecord","_this$dispatchError","_this$dispatchInfo","_this$internalError","makeEraOptions","partialOptions","makeSignOptions","makeSignAndSendOptions","statusCb","extras","extrinsicType","apiType","decorateMethod","__internal__transformResult","__internal__observeSign","optionsOrNonce","eraOptions","updateId","__internal__signViaSigner","__internal__observeStatus","asInBlock","asFinalized","__internal__observeSend","__internal__updateSigner","__internal__observeSubscribe","signPayload","signRaw","__internal__ignoreStatusCb","hasDryRun","hasPaymentInfo","_api$call$transaction","transactionPaymentApi","optionsOrHash","paymentInfo","callAt","allOptions","signOptions","signAsync","signAndSend","optionalStatusCb","withResultTransform","createSubmittable","Submittable","logLength","logValues","findSectionExcludes","findMethodExcludes","srcSections","dstSections","excludes","srcMethods","dstMethods","augmentObject","objectClear","extractSections","extractMethods","decorateDeriveSections","extractStorageArgs","_args","instanceCounter","getAtQueryFn","Decorate","_options$source","__internal__runtimeLog","__internal__storageGetQ","__internal__storageSubQ","__phantom","_consts","_errors","_extrinsicType","_isReady","_query","_runtimeMap","_rx","_rxDecorateMethod","__internal__registry","knownVersion","_decorateMethod","_options","_rpcCore","_isConnected","supportMulti","_emptyDecorated","_createDecorated","fromEmpty","decoratedApi","decoratedMeta","expandMetadata","_decorateCalls","runtimeRx","_decorateStorage","storageRx","_decorateMultiAt","_decorateMulti","createdAt","_injectMetadata","_decorateExtrinsics","rxtx","_extrinsics","injectMetadata","counter","_decorateFunctionMeta","_filterRpc","_decorateRpc","_rpc","sectionMap","nameA","nameB","_filterRpcMethods","exposed","hasResults","allKeys","_rpcSubmitter","decorateFn","methodName","decorateInternal","_addRuntimeDef","dcount","_getRuntimeDefs","typeDefinitions","_knownTypes$typesBund25","_knownTypes$typesBund26","_knownTypes$typesBund27","_knownTypes$typesBund28","_knownTypes$typesBund29","_knownTypes$typesBund30","getSpecRuntime","named","_runtimeChain","older","hasLogged","_section","sectionHash","rtApi","sec","_method","notFound","stateCall","lazySection","_decorateCall","decorated","atApi","_decorateExtrinsicEntry","_decorateStorageEntryAt","_decorateStorageEntry","_this2","getArgs","getQueryAt","_decorateStorageCall","_len5","_key5","_len6","_key6","sizeAt","_len7","_key7","_len8","_key8","_retrieveMapEntries","entriesAt","_len9","_key9","entriesPaged","_retrieveMapEntriesPaged","_len10","_key10","_retrieveMapKeys","keysAt","_len11","_key11","keysPaged","_retrieveMapKeysPaged","_retrieveMulti","_this3","_len12","_key12","_len13","_key13","_len14","_key14","_len15","_key15","_len16","_key16","_queueStorage","valueObs","queueIdx","valueIdx","_this4","memoed","_len17","_key17","overrideNoSub","_len18","_key18","headKey","startSubject","pageSize","valsArr","_decorateDeriveRx","_this$_runtimeVersion","_this$_options$typesB","_this$_options$typesB2","_this$_options$typesB3","_runtimeVersion","getAvailableDerives","_decorateDerive","textToString","Init","__internal__atLast","__internal__healthTimer","__internal__registries","__internal__updateSub","__internal__waitingRegistries","_queryMulti","getBlockRegistry","__internal__onProviderDisconnect","__internal__onProviderError","__internal__onProviderConnect","_initRegistry","chainProps","_specVersion","_knownTypes$typesBund7","_knownTypes$typesBund8","_knownTypes$typesBund9","_knownTypes$typesBund10","_knownTypes$typesBund11","_knownTypes$typesBund12","_knownTypes$typesSpec","_knownTypes$typesChai","getSpecTypes","_knownTypes$typesBund13","_knownTypes$typesBund14","_knownTypes$typesBund15","_knownTypes$typesBund16","_knownTypes$typesBund17","_knownTypes$typesBund18","getSpecHasher","_knownTypes$typesBund31","_knownTypes$typesBund32","_knownTypes$typesBund33","_knownTypes$typesBund34","_knownTypes$typesBund35","_knownTypes$typesBund36","getSpecAlias","_knownTypes$typesBund","_knownTypes$typesBund2","_knownTypes$typesBund3","_knownTypes$typesBund4","_knownTypes$typesBund5","_knownTypes$typesBund6","getSpecExtensions","_getDefaultRegistry","u8aHash","u8aHex","runtimeChain","lastBlockHash","_cacheBlockRegistryProgress","_getBlockRegistryViaVersion","existingViaVersion","_genesisHash","firstVersion","lastVersion","getUpgradeVersion","_createBlockRegistry","_getBlockRegistryViaHash","_this$_options$source","_unsubscribeUpdates","_runtimeMetadata","_metaFromSource","_metaFromChain","_initFromMeta","extrinsicVersion","rpcs","runtimeMetadata","_subscribeUpdates","thisRegistry","optMetadata","rpcMethods","chainMetadata","metadataKey","throwOnUnknown","_derive","_subscribeHealth","_unsubscribeHealth","_unsubscribe","cryptoReady","initWasm","hasMeta","_loadMeta","assertResult","Getters","libraryInfo","ApiBase","setSigner","_signer","Combinator","__internal__allHasFired","__internal__fired","__internal__fns","__internal__isActive","__internal__results","__internal__callback","_createCallback","_allHasFired","hasFired","_triggerUpdate","promiseTracker","toPromiseMethod","needsCallback","actualArgs","resultCb","extractArgs","tracker","decorateSubscribe","decorateCall","ApiPromise","__internal__isReadyOrErrorPromise","throwOnConnect","isReadyOrError","combinator","types10","AmountOf","CtypeCreatorOf","CtypeHashOf","ClaimHashOf","AttesterOf","AttestationDetails","ctypeHash","attester","delegationId","revoked","Permissions","DelegationNodeIdOf","DelegatorIdOf","DelegateSignatureTypeOf","DelegationRoot","DelegationNode","rootId","KeyIdOf","DidIdentifierOf","AccountIdentifierOf","DidCallableOf","DidVerificationKey","DidEncryptionKey","X25519","DidPublicKey","PublicVerificationKey","PublicEncryptionKey","DidVerificationKeyRelationship","DidSignature","DidError","StorageError","SignatureError","UrlError","InputError","InternalError","DidAlreadyPresent","DidNotPresent","DidKeyNotPresent","VerificationKeyNotPresent","CurrentlyActiveKey","MaxTxCounterValue","KeyError","DidPublicKeyDetails","DidDetails","authenticationKey","keyAgreementKeys","delegationKey","attestationKey","publicKeys","endpointUrl","lastTxCounter","DidCreationOperation","did","newAuthenticationKey","newKeyAgreementKeys","newAttestationKey","newDelegationKey","newEndpointUrl","DidUpdateOperation","attestationKeyUpdate","delegationKeyUpdate","publicKeysToRemove","txCounter","DidVerificationKeyUpdateAction","Ignore","Change","Delete","DidDeletionOperation","DidAuthorizedCallOperation","HttpUrl","FtpUrl","IpfsUrl","Url","Http","Ftp","Ipfs","LockedBalance","RoundInfo","OrderedSet","Stake","TotalStake","collators","delegators","InflationInfo","delegator","StakingInfo","maxRate","rewardRate","RewardRate","annual","Delegator","CollatorSnapshot","Collator","CollatorStatus","Leaving","types12","DelegationCounter","Secp256k1","types17","hierarchyRootId","DelegationDetails","DelegationHierarchyDetails","DelegationStorageVersion","mergeType","oldTypes","newTypes","deleteKeys","adjustedTypes","types18","DidCreationDetails","DidUpdateDetails","types19","ServiceEndpoints","urls","contentType","DidFragmentUpdateAction_ServiceEndpoints","DidFragmentUpdateAction_DidVerificationKey","ContentType","newServiceEndpoints","serviceEndpointsUpdate","serviceEndpoints","DidStorageVersion","types20","MaxCollatorCandidates","MaxDelegatorsPerCollator","MaxCollatorsPerDelegator","StakingStorageVersion","MaxDelegatedAttestations","MaxClaims","MaxChildren","DidNewKeyAgreementKeys","DidKeyAgreementKeys","DidVerificationKeysToRevoke","MaxNewKeyAgreementKeys","MaxTotalKeyAgreementKeys","MaxVerificationKeysToRevoke","MaxPublicKeysPerDid","DidPublicKeyMap","MaxUrlLength","MaxEndpointUrlsCount","MaxPublicKeysPerDidKeyIdentifierExceeded","MaxTotalKeyAgreementKeysExceeded","MaxOldAttestationKeysExceeded","types21","newAssertionMethodKey","newCapabilityDelegationKey","capabilityDelegationKey","assertionMethodKey","types23","MinCollators","MaxTopCandidates","CandidateStatus","types25","types2700","KeyNotPresent","MaxPublicKeysPerDidExceeded","DidAlreadyDeleted","types10410","types10720","DidApiAccountId","RawDidLinkedInfo","w3n","types10800","PublicCredentialFilter","PublicCredentialError","StakingRates","collatorStakingRate","collatorRewardRate","delegatorStakingRate","delegatorRewardRate","types10900","oldDidApiCalls","query_did_by_w3n","query_did_by_account_id","query_did","newDidApiCalls","query_by_web3_name","query_by_account","DidApi","Did","get_staking_rates","get_unclaimed_staking_rewards","PublicCredentials","get_by_id","get_by_subject","defaultTypesBundle","Attestation","DelegationNodeId","DidRecord","signKey","boxKey","docRef","PublicBoxKey","PublicSigningKey","XCurrencyId","currencyId","RelayChain","ParaChain","CurrencyIdOf","CurrencyId","DOT","KSM","KILT","XcmError","DelegationSignature","didCalls","stakingCalls","publicCredentialsCalls","cachedApi","wsProvider","ENDPOINT","_process$env$REACT_AP","getConnection","getCandidatePool","parachainStaking","candidatePool","getNextCollators","getCurrentCollators","querySessionInfo","queryBestBlock","queryBestFinalisedBlock","queryOverallTotalStake","totalCollatorStake","queryMaxCandidateCount","maxSelectedCandidates","queryTotalIssurance","queryMinDelegatorStake","minDelegatorStake","queryStakingRates","rates","stakingRatesToHuman","getStakingRates","getUnclaimedStakingRewards","getMaxNumberDelegators","maxDelegatorsPerCollator","getUnstakingAmounts","unstaking","getDelegatorStake","delegatorState","onSuccess","injector","accountU8a","web3FromAddress","hadError","isModule","asModule","claimDelegatorRewards","txs","incrementDelegatorRewards","claimRewards","utility","batch","leftFillZero","numberFormat","Intl","NumberFormat","ButtonColor","Button","stakedPct","stakeablePct","MetaUp","MetaDown","UnusedMeta","BlockchainDataContext","dataSet","UnusedAccounts","Accounts","usedAccounts","used","unusedAccounts","accountWithPct","_Fragment","kiltToFemto","kilt","femtoToKilt","big","femtoKiltToDigits","femtoKilt","exponent","padTime","blockToTime","inSeconds","secondsToMinutes","minutesToHours","hoursToDays","minutes","hours","days","useTxSubmitter","useModal","isVisible","setIsVisible","toggleModal","hideModal","shortenAddress","Icons","arrow_down","arrow_straight","arrow_up","block_new","bulb_gray","bulb_yellow","BUILT_ON_KILT","exclamation_new","exclamation","fav_gray","fav_yellow","next_session_gray","next_session_yellow","order_white","order_yellow","pickaxe_gray","pickaxe_orange","pickaxe_yellow","skateboarder","tokens_gray","tokens_white","tokens_yellow","minus_inactive","plus_inactive","minus_active","plus_active","firefox_store","chrome_store","sporran_logo","Icon","pulsing","alt","tooltip","DialogModal","RewardModal","accountAddress","onConfirm","closeModal","shortAddress","setFee","feeInFemto","feeInKiltWithSixDigits","getFee","green","IdentityView","bestBlock","readyToWithdraw","setReadyToWithdraw","accountData","setAccountData","signAndSubmitTx","acconutData","sumAllStakeable","unlockUnstaked","withdrawStake","timeable","Scale","Overlays","NoExtension","NoAccount","NoTokens","NotAcceptedTerms","acceptedTerms","setAcceptedTerms","rel","NoData","backgrounds","bg1","bg2","bg3","bg4","OnboardingStatus","OnboardingContent","DownloadLinks","Onboarding","setBackground","loadingDataStatus","isUsableAccount","needsOnboarding","backgroundImage","RefreshPausedOverlay","Dashboard","Input","autoComplete","onInput","newStake","StakeModal","collatorAddress","NOTES_MESSAGE","orange","UnstakeRow","handleUnstake","rowStyles","StakeRow","stakeInfo","editStake","setEditStake","setNewStake","setStakeable","changeStake","differenceInFemto","more","delegatorStakeMore","less","delegatorStakeLess","leaveDelegators","handleEdit","StyleSheet","_insertTag","before","tags","prepend","container","isSpeedy","speedy","ctr","_proto","insert","createStyleElement","sheet","ownerNode","sheetForTag","insertRule","pattern","replacement","indexof","charat","strlen","sizeof","append","line","column","character","characters","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","commenter","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","serialize","compile","rules","rulesets","pseudo","declarations","atrule","variable","scanning","ampersand","reference","comment","declaration","ruleset","getRules","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","combine","exec","ssrStyles","stylisPlugins","_insert","inserted","nodesToHydrate","attrib","currentSheet","finalizingPlugins","serializer","collection","middleware","serialized","shouldCache","stylis","registered","getRegisteredStyles","registeredStyles","rawClassName","insertStyles","isStringTag","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","__emotion_styles","anim","interpolated","createStringFromObject","previousCursor","labelPattern","serializeStyles","stringMode","identifierName","hashString","EmotionCacheContext","HTMLElement","createCache","CacheProvider","withEmotionCache","ThemeContext","typePropName","Emotion","cssProp","css","newProps","argsLength","createElementArgArray","createEmotionProps","classnames","cls","toAdd","ClassNames","content","merge","theme","ele","excluded","sourceKeys","sourceSymbolKeys","_typeof","_toPropertyKey","_defineProperties","_setPrototypeOf","_defineProperty","insertable","_arrayLikeToArray","arr2","_toConsumableArray","iter","safeIsNaN","isEqual","areInputsEqual","newInputs","lastInputs","resultFn","lastThis","lastResult","lastArgs","calledOnce","newArgs","defaultInputValue","defaultMenuIsOpen","SelectComponent","_class","_temp","StateManager","_createSuper","inputValue","menuIsOpen","actionMeta","callProp","onInputChange","newValue","onMenuOpen","onMenuClose","_this$props","_this$props2","getProp","manageState","Select","clearValue","refContainer","_refContainer$current","ReactSelect","IndicatorSeparator","classNamePrefix","spacing","controlHeight","baseUnit","IdentitySelector","NewStakeRow","setAddress","amountInFemto","joinDelegators","W3N_PREFIX","REACT_APP_W3N_PREFIX","Web3Name","web3name","setWeb3name","queryByAccount","apiVersion","connectedDid","getWeb3name","CollatorRow","setExpanded","expanded","maxCandidateCount","maxNumberDelegators","hasStakes","favorite","isLeaving","activeNext","rank","totalStake","lowestStake","colSpan","CollatorListItem","SORT_BY","iconSortType","actual","expect","CollatorList","showSearch","setShowSearch","setSearch","sortBy","setSortBy","Rank","dataWithRanks","setDataWithRanks","setData","sortedData","newData","Rank_Reverse","role","Favorite","LowestStake","Delegators","Footer","stakingRates","ChainInfo","sessionCount","setSessionCount","sessionCountdown","setSessionCountdown","bestFinalisedBlock","sessionCounter","sessionTime","blockInSession","blockInSessionDescending","sessionTimer","updateCollators","collatorStates","selectedCandidatesChain","currentCandidatesChain","candidateId","asLeaving","userStakes","mapCollatorStateToCandidate","currentCandidates","updateChainInfo","overrallTotalStake","initialize","interval","updateCallback","timer","shouldKeepUpdating","chainInfo","accountInfos","getters","unstakingChain","maybeDelegation","delegation","updateAccountInfos","keepUpdating","stop","BlockchainData","partialAccounts","setCandidates","setSelectedCandidates","setCurrentCandidates","setDataSet","setAccounts","setSessionInfo","setBestBlock","setBestFinalisedBlock","setMinDelegatorStake","overallTotalStake","setOverallTotalStake","setTotalIssuance","setMaxCandidateCount","setMaxNumberDelegators","setAccountInfos","chainInfoActivate","setChainInfoActivate","setStakingRates","newCandidates","newSelectedCandidates","newCurrentCandidates","newAccountInfos","doEffect","newDataSet","sortedLowestStake","completeAccounts","useExtension","setExtensions","allAccounts","setAllAccounts","allInjected","getGenesis","ErrorNotification","LoadingDataNotification","ConnectionNotification","BlockchainNotication","Page","useConnect","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ErrorBoundary","errorInfo","ReactDOM","App","getElementById","reportWebVitals"],"sourceRoot":""}